2017年10月 / 09月≪ 12345678910111213141516171819202122232425262728293031≫11月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2013.03.16 (Sat)

Mercury/32で空メールのテストしたい

PHPで空メール処理する機能作ったけど、ローカルでテストしたい。

って思ってxamppについてるmercury/32を使って、
特定メールアドレスのメールの受信をフラグにメールをPHPにパイプで渡して、
サーバーでaliasesで設定するので、phpファイル自体はそのまま使えるようphp内でphp://stdinで取得できて、
処理後にメールを削除する。

っていう定番な動きがmercury/32だとなかなかするっといかなかった。
てっきりaliasesに入れりゃ動くかなーとか思ってたけど全然ダメ。

コアモジュールのポリシーから引数渡してバッチ動かせるんだけど、これだと全部のユーザーのメールに対して動いちゃう。


調べたりした結果、ユーザー作る→ユーザー作るとメールフォルダ出来る
→フォルダ内のメールを全てphpに渡すバッチ作る→受信をフラグに動かすフィルタ使ってバッチ動かす
っていう方法がシンプルだったようで。

例)
メールアカウント:autorun@localhost
渡したいPHPファイル:D:\php\test.php
バッチファイル:D:\run.bat

1)受信用ユーザー作成(autorun)

2)ユーザーフォルダ内のメールを総なめするバッチファイルを作る

@echo off
SET DIRNAME=D:\xampp\MercuryMail\MAIL\autorun
FOR %%F IN (%DIRNAME%\*.CNM) DO (
TYPE %%F | D:\php\test.php
DEL %%F
)

DIRNAMEはユーザー作った時にできたフォルダ。環境に合わせる。
FORで.CNMファイルのみループ、windows7のコマンドではTYPEでファイル内を表示できるのでそれを利用してパイプで渡す。
最後に処理終わったらDELで渡し終わったファイル削除。
バッチなんでエラーコード返して処理分けとかも必要であれば追加できるとおもう。

3)フィルタリングルールで動かす条件追加
シンプルにToに「autorun@localhost」だったら
Action:Run a program
パラメータ:D:\run.bat
て感じにする。

これでautorun@localhostにメールがきたらバッチが動くんで受信して処理してファイル消えるはず。


こんなのにすごい時間食ってしまった・・・


 |  19:32  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

Comment

コメントを投稿する

URL
コメント
パス  編集・削除するのに必要
非公開  管理者だけにコメントを表示
 

Trackback

この記事のトラックバックURL

この記事へのトラックバック

 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。