LUNARAVE WEBクリエイターの仕事と休息

アクセスカウンタ

Google Maps APIの利用戦国IXAWeb技術Youtubeチャンネル

zoom RSS 受信メールを条件を指定で転送したりCGIを呼び出す

<<   作成日時 : 2011/06/06 18:24   >>

ブログ気持玉 0 / トラックバック 0 / コメント 4

以前に「空メール送信してPHPを動作させる」で".forward"という受信したメールを転送する技術を応用してスクリプトを呼び出す方法を紹介したが、さらに応用して条件を満たした場合にのみスクリプトを動作させるようにする。

".forward"はテキストファイルで、そこにメールアドレスを記載しておけばメール受信時に転送されるようになる。
その転送先をメールアドレスではなく、PHPやPerlなどCGIを呼び出すことで「空メールで仮登録」や「メール送信で自動応答」などが行える。
->空メールを送信してPHPを動作させる設定 -.forward

CGIを呼び出すには下記のような記述をする


"|exec /usr/local/bin/php /var/www/○○.php"



今回は「特定のメールタイトルがあればスクリプトを呼び出す」と条件を満たした場合にだけ指定する。

上記の".forward"にプログラムで言うif文で分岐できればよいのだが、".forward"にはそのようなプログラム的に動作する機能は備わっていない。

そこで、"procmail"というこちらも転送機能をもつアプリケーションを利用することで条件指定することができる。
"procmail"は"Postfix"などOSインストール時に自動で入ることもあれば、別途インストールする必要がある場合もある。

動作の流れとしては、メールを受信するとまず".forward"で"procmail"にアクションをかけ、"proxmail"が受信メールを判断して指定処理を実行する。


".forward"にはダブルクォーテーションを含めた下記の記載を行う。


"|exec /usr/bin/procmail -f- || exit 75"



次に"procmail"には下記のような記載を行う。


LOCKFILE=$HOME/.lockfile
:0
* ^Subject: .*メールタイトル*
|/usr/local/bin/php /var/www/○○.php



メールタイトルが指定したものなら指定のPHPを実行するといったものだ。

メールログを見ると"procmail"に渡したあとにメールボックスに溜まらないように"removed"しているのがわかる。


Jun 03 11:27:01 localhost postfix/smtpd[2772]: **********: client=localhost.localdomain[127.0.0.1]
Jun 03 11:27:01 localhost postfix/cleanup[2775]: **********: message-id=<20110222022701.***********@localhost>
Jun 03 11:27:01 localhost postfix/qmgr[29929]: **********: from=<***@localhost>, size=571, nrcpt=1 (queue active)
Jun 03 11:27:01 localhost postfix/local[2776]: **********: to=<***@localhost>, relay=local, delay=0.15, delays=0.02/0.11/0/0.03, dsn=2.0.0, status=sent (delivered to command: exec /usr/bin/procmail -f- || exit 75)
Jun 03 11:27:01 localhost postfix/qmgr[29929]: **********: removed



"procmail"に渡ったあとのログは"procmail"内の記述でログ出力を指定することで閲覧することができる。


社員だけのメールを振り分けたいや、"お問い合わせ"とメールタイトルにあるものだけをデータベースに入れるなど、細かな対応が取ることができそうだ。


テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(4件)

内 容 ニックネーム/日時
I'm no longer sure the place you are getting your info,
however good topic. I must spend a while learning much more or working out more.
Thanks for fantastic information I was on the lookout for this information for my mission.
Alfonso
URL
2017/06/13 08:52
I read this article fully about the difference of most up-to-date and earlier technologies,
it's remarkable article.
Alberta
URL
2017/07/23 10:30
hello there and thank you for your information _ I've certainly picked
up something new from right here. I did however expertise a few technical
issues using this web site, as I experienced to reload the site lots of
times previous to I could get it to load
properly. I had been wondering if your web hosting is OK?
Not that I'm complaining, but sluggish loading
instances times will often affect your placement in google and could damage your
quality score if ads and marketing with Adwords. Anyway I
am adding this RSS to my e-mail and could look out for a lot more of your respective fascinating content.
Ensure that you update this again soon.
Fern
URL
2017/08/10 06:00
I simply wished to appreciate you yet again. I do not know what I might have
gone through in the absence of the type of suggestions
revealed by you regarding that area. It became
the fearsome crisis in my circumstances, but observing the expert strategy you treated
that made me to cry for fulfillment. I am happy for this information and in addition have high hopes you know
what a great job you are always doing educating others thru
your blog. I am sure you have never come across all of us.
Delmar
URL
2017/09/02 05:46

コメントする help

ニックネーム
URL(任意)
本 文
受信メールを条件を指定で転送したりCGIを呼び出す LUNARAVE WEBクリエイターの仕事と休息/BIGLOBEウェブリブログ
文字サイズ:       閉じる