web-dev-qa-db-ja.com

スクリプトヘルプ-/ var / pool / mail / userを解析します

CentOS 5.x | SendMail

こんにちは、みんな、

/ var/pool/mail /から個々のメッセージを取得する簡単な方法はありますか?私は本当に単純なスクリプトのアイデアを持っており、個々のメッセージに何かがないか確認したいと思います。

シナリオは次のようになります。

1)新しいメールが受信トレイに届きます。 2)スクリプトは特定の文字列をチェックします。 3)文字列が見つかった場合、スクリプトはさまざまなヘッダー情報を取得し、情報を電子メールで送信します。

ミルターがおそらく行く方法だと思いますが、私はそれを練習したいので、シェルスクリプトでこれを行う方法を見つけたいと思っていました。問題は、個々のメッセージを解析または分離する方法が見つからないように見えることです。/var/pool/mail /を調べると、複数のメッセージがあり、メッセージ間に一意の区切り文字がない大きなファイルが表示されます。

2
Mike B

単純なシェルスクリプトを無視すると、ほとんどすべてのプログラミング言語に、 mbox 形式のメールボックスを解析するためのライブラリがあります。

もちろん、周りを見回すと、POP3およびIMAPクライアントライブラリもたくさん見つかります。

procmail または maildrop のようなものを使用してメッセージをフィルタリングすることもできるはずです。

3
Zoredache

古典的には、メールを受信したときに、procmailなどのMDAを使用してこの種のことを行います。すでにメールボックスがある場合、procmailにはformail(1)が付属しています。これにより、メールボックス内の各メールでプログラムを実行でき、ヘッダーをフィルタリングおよび書き換える機能があります。