受信専用メールサーバーを設定し、受信メールと添付ファイルを処理します。

受信専用メールサーバーを設定し、受信メールと添付ファイルを処理します。

Ubuntu 14.04サーバーで次のシナリオを作成したいと思います。

  • メールのみを受信するメールサーバー(または「メール転送エージェント」?)を設定します。このサーバーでメールを送信する必要はありません。
  • 受信メールに対してデフォルトのフィルタリングを実行します(メールに正しい添付ファイルがあることを確認します(正確には特定の拡張子を持つファイル)。)
  • 特定のフォルダにのみ添付ファイルを保存してください。
  • 処理されたメッセージの削除

私はメールサーバーについて全く知らないので、試してみましたが、Postfix正しく理解していたら、メールフィルタリングと処理のためのより良い解決策はありますか?わかっているので、PythonこれらのPHP言語のいずれかを使用してフィルタリング/処理を処理できますが、まだ正確にどこから始めるべきかわかりません。
可能であれば、一部のPythonスクリプトでcronジョブを実行し、添付ファイルが保存されるとすぐに処理されたメッセージを削除するのではなく、メッセージを受信するとすぐに処理することをお勧めします。
この特別な瞬間には、セキュリティやスパム/ウイルス対策を設定する必要はありません。

このワークフローの設定方法は少し混乱しているので、少なくとも各ステップの開始点を尋ねたかったのです。追加資料へのリンクは非常に歓迎されます!完全な解決策を必要とするわけではありませんが、この状況で役立つ可能性のあるパッケージに関するいくつかのヒントをお寄せいただきありがとうございます。

答え1

サーバーで実行したいと表示します。コンピュータに特定のメールドメインに送信されたメールを処理できる永続IPアドレスがない場合は、メールを処理するプロバイダから電子メールを受信するように設定する必要があります。

処理後にメッセージを削除することを示しているため、プロバイダはすべてのメッセージを1つのユーザーアカウントに収集することを気にする必要はありません。これを設定する必要があります。

fetchmailその後、ローカルで実行されているプログラムと会話し、ローカルpostfix接続のみを受信する同様のプログラムを使用してメールを受信できます。 (サーバーに静的IPアドレスがあり、外部のstmp接続を処理できる場合は、この手順をスキップして残りの部分しか実行できません。)

postfixprocmailメールボックスコマンドとして使用するように構成する必要があります(main.cf

mailbox_command = procmail -a "$EXTENSION"

fetchmail処理を行う特定のユーザーに対しては、定期的(1分ごとにプロバイダに確認)クローンジョブとして実行する必要があります。このユーザーは、~/.procmailrcフィルタリングを実行し、次の項目を含む電子メールをスクリプトに転送するファイルを持っている必要があります。

:0
$ ^Subject:.*some_text_that_has_to_be_in_the_subject_to_be_valid_for_processing
| /usr/local/bin/your_program 

これで、your_programファイル形式(ヘッダーの後に本文)を処理できるはずです。私はPythonとその標準を使用しています。email複雑なMIME添付ファイルを処理するためのモジュールです。

ヒント:開発中にyour_program入ってくるデータ(上記sys.stdin)を一部のファイルに完全に保存すると、独立して表示およびxyz開発できるため(実行するだけでyour_command < xyz)、プロセスのこのステップをテストするために添付ファイルを含む電子メールを送信する必要はありません。

関連情報