
CentOS 5.x | メール送信
こんにちは、みんな、
/var/spool/mail/ から個々のメッセージを取得する簡単な方法はありますか? 非常にシンプルなスクリプトのアイデアがあり、個々のメッセージをチェックして何かを確認したいと考えています。
シナリオは次のようになります。
1) 新しいメールが受信トレイに到着します。2) スクリプトは特定の文字列をチェックします。3) 文字列が見つかった場合、スクリプトはさまざまなヘッダー情報を取得し、その情報をアドレスにメールで送信します。
おそらく milter が最適な方法であることはわかっていますが、シェル スクリプトでこれを行う方法を見つけたいと思っていました。シェル スクリプトを練習したいからです。問題は、個々のメッセージを解析または分離する方法が見つからないことです。/var/spool/mail/ を調べると、複数のメッセージを含む大きなファイルがあり、メッセージ間に一意の区切り文字がありません。
答え1
単純なシェルスクリプトを除けば、ほぼすべてのプログラミング言語には、mボックスフォーマットされたメールボックス。
- メールボックス
- http://search.cpan.org/~dcoppit/Mail-Mbox-MessageParser-1.5002/lib/Mail/Mbox/MessageParser/Perl.pm
- http://www.phpclasses.org/browse/file/3127.html
もちろん、探してみると、POP3 や IMAP クライアント ライブラリもたくさん見つかります。
答え2
従来は、メールを受信したときに procmail などの MDA を使用してこのような処理を行っていました。すでにメールボックスをお持ちの場合は、procmail にはformail
(1) が付属しており、メールボックス内の各メールに対してプログラムを実行でき、ヘッダーをフィルタリングして書き換える機能があります。