すべての受信メールをPythonスクリプトにリダイレクトする

すべての受信メールをPythonスクリプトにリダイレクトする

*@example.com私のサーバーで実行され、さまざまなタスクを実行するPythonスクリプトを使用して、すべての着信メールを管理したいと思います。

  • example.com私のサーバーに転送するためにDNS MXレコードを作成しました。

    mx.example.com                   MX     mailforwarder.example.com
    mailforwarder.example.com        A      1.2.3.4
    
  • postfixとeximを使って多くの試行錯誤を受けましたが、何の効果もなかったので、すべて削除しました。apt-get remove postfixこれでapt-get remove exim4、それらの1つを新しくインストールする準備が整いました。仕事?)

*@example.comすべての着信メールをPythonスクリプトに渡す主なステップは何ですか?(付属:MTAにサーバーの外部、インターネット全体などの電子メールを受け入れるように指示)

ベストアンサー1

procmail問題があると考えられる作成者:Philip Guenther(この場合、.forwardファイルまたはそれに対応するファイルが不要な複雑さをスキップしてプログラムに直接メールを送信できるため、ほとんど役に立ちませんprocmail)。

要約:procmailポートを削除します。このコードは安全ではなく、追加作業の基礎として使用しないでください。

人々は、私が1990年代後半から2001年までにprocmailのアップストリーム管理者だったことを知っています。

したがって、メール転送エージェント(MTA)によっては、他のソリューションが推奨される場合があります。別のオプションは、MTAを使用してローカルファイルまたはIMAPに転送し、プログラムがファイルまたはIMAPを解析できるようにすることです。これの利点は、電子メールを受信し続けてどこかに保存できることです。プログラムにバグがある場合、または実行に失敗した場合はどうなりますか?リアルタイムメール配信より問題が少ない..

輸出入銀行

おそらくSendmail.forwardメソッドを複製するか、Eximeseでこれを正しく実行する方法を見つけてください。 (エクシム文書を掘り下げるには時間がかかりそうだったので中断しました。)elspyMILTERモードでSMTPチェックを実行するには...

サフィックス

https://serverfault.com/questions/258469/how-to-configure-postfix-to-pipe-all-incoming-email-to-a-script#258491

マブソサ、長くて複雑に見えますね。

メールを送信

mailertableドメイン(および.domain必要に応じてサブドメイン)のすべてのメールをローカルユーザーに転送するには、ここにエントリを設定します。jdoe

example.com     local:jdoe
.example.com    local:jdoe

次に、.forwardユーザーが必要なコードを実行できるようにファイルを設定します。

$ cat ~jdoe/.forward
"|/etc/smrsh/process"
$ 

これは簡単かもしれません。

$ cat /etc/smrsh/process
#!/bin/sh
cat >> /home/jdoe/allmails
$ 

電子メールがstdinを介して入ってくるからです(複数のprocessインスタンスが同時に実行されている場合は悪いかもしれません。おそらく、実際のコードがこれらの競合状態を処理する可能性がありますか?)。この方法は、MTA がすべてのメールを特定のユーザーにリダイレクトできるようにするという前提で、Sendmail の転送構文を複製する他の MTA でも機能します。

これはmailertableサポートが有効になってconfFORWARD_PATH設定され、Sendmailがコードを実行できるようにします(smrsh(8)ただし、一部のベンダーはドキュメントを更新せずにディレクトリを変更できることに注意してください(実行がstrings /the/path/to/smrsh | fgrep /役に立つかもしれません))。 selinuxのようなものが問題を引き起こさないと仮定します。

Sendmailのもう一つのオプションはMILTERを使うことです。MIMEディパンそこで必要なビジネスロジックを実行します。 (他のさまざまなMTAはMILTERをサポートするか、同様の機能を持っています。)

簡易メール転送プロトコルデーモン(OpenBSD)

一目でsmtpd.conf(5)(OpenBSD 6.4の変更に合わせて更新)

action "mymda" mda "/path/to/your/command" user jdoe
match from any for domain example.com action "mymda"

おすすめ記事