*@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でこれを正しく実行する方法を見つけてください。 (エクシム文書を掘り下げるには時間がかかりそうだったので中断しました。)elspy
MILTERモードでSMTPチェックを実行するには...
サフィックス
マブソサ、長くて複雑に見えますね。
メールを送信
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"