web-dev-qa-db-ja.com

ポストフィックスアフターキューコンテンツフィルター、高度なフィルターが機能しない

コンテンツフィルターの設定方法 の接尾辞のWebサイトの指示に従いました。簡単な例をすぐに起動して実行できましたが、長時間の苦労の末、高度なフィルターを機能させることができませんでした。

例のようにすべてをセットアップします。smtpはフィルターされていないメッセージをポート25でリッスンし、フィルタースクリプトを呼び出すポート10025にメッセージを渡すようにフィルターが設定され、ポート10026でフィルターされたメッセージを別のsmtpリスナーが使用します。

簡単な例では、スクリプトはメッセージフローの最後の停止であり、標準入力を介してメッセージを取得し、その作業を実行し、sendmailを使用してメッセージを再挿入します。

高度な例では、私はメッセージを受け取らないようで、それを伝えることができないようです。 「550コンテンツが拒否されました」という応答を返すことができました。

私の質問は、スクリプトがメール本文をどのように受信し、それをメールキューにどのように返すかということだと思います。どうすればすべてを機能させることができますか?

main.conf:

content_filter = scan:localhost:10025

master.conf:

scan      unix  -       -       n       -       10      smtp
        -o smtp_send_xforward_command=yes
        -o disable_mime_output_conversion=yes
        -o smtp_generic_maps=

localhost:10025 inet  n       n       n       -       10      spawn
        user=filter argv=/home/omri/filter.sh localhost 10026

localhost:10026 inet  n       -       n       -       10      smtpd
        -o content_filter= 
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters
        -o smtpd_helo_restrictions=
        -o smtpd_client_restrictions=
        -o smtpd_sender_restrictions=
        # Postfix 2.10 and later: specify empty smtpd_relay_restrictions.
        -o smtpd_relay_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o smtpd_authorized_xforward_hosts=127.0.0.0/8
3
Omriko

セクション単純なコンテンツフィルターの例では、パイプ(stdinなど)を使用してメール本文を受信できます。 高度なものでは、スクリプトはSMTPサーバーとSMTPクライアントの両方として機能する必要があります。

  • SMTPサーバーとして、postfixはSMTPを使用してスクリプトに電子メールを送信します。したがって、スクリプトはSMTPトランザクションを自分で処理する必要があります。スポーンプロセスはそれを行いませんが、代わりにinetdとして処理します。
  • SMTPクライアントとして、スクリプトはSMTPトランザクションでもpostfix localhost:10026に電子メールを返します。

そのページからスニペット。

2番目の例はより複雑ですが、パフォーマンスが向上し、マシンでリソースの問題が発生したときにメールが返送される可能性が低くなります。 このコンテンツフィルターは、ローカルホストポート10025でSMTPを使用してフィルタリングされていないメールを受信し、SMTPをオンにしてPostfixにフィルタリングされたメールを送り返しますローカルホストポート10026

SMTP非対応のコンテンツフィルタリングソフトウェアの場合、Bennett ToddのSMTPプロキシは、Nice Perl/SMTPコンテンツフィルタリングフレームワークを実装します。参照: http://bent.latency.net/smtpprox/

2
masegaloeh