1

Postfix を使用して受信メールを受け入れ、それらを解析してデータベースに追加する外部 Python スクリプトに送信させたいと考えています。

これはポリシーファイルを介して行うことができると読みました。

私の最初の質問は、送信者への成功メッセージとともに Postfix がキューから電子メールを削除するために、ポリシー ファイルが何を返す必要があるかということです。

2 番目の質問は、ポリシー ファイルを使用して、クライアントから送信された SMTP 認証を検証できますか? そうでない場合、外部スクリプトを使用してログインを検証する方法はありますか?

ありがとう!

  • キリスト教徒
4

1 に答える 1

1

とにかくSMTP認証が必要で、スクリプトをMDAとして機能させたい場合は、認証スキームを設定mailbox_command = /path/to/my/scriptして構成するだけで実行できると思います。/etc/postfix/main.cf実行している場合も、 SASL認証に関しては非常に構成可能な経由で認証dovecotすることをお勧めします。postfixdovecot

アップデート

プレーンテキストのパスワードがネットワーク経由で送信されるため(このサービスがネットワークから到達可能であると想定)、暗号化された回線経由でのみ認証を許可することをお勧めします。これから説明する構成では、サーバーが宛先であるメールを認証なしで引き続き受け入れます。私の知る限り、その動作はインターネットから到達可能なSMTPサーバーのRFCによって義務付けられています。

暗号化された接続でのみSASL認証をアナウンスする

smtpd_tls_auth_only=yes

暗号化されたチャネルを介して全員に話しかける必要はありません

smtpd_tls_security_level=may

SASLボイラープレート

smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $mydomain

メールを受け入れる相手。これは、許可または拒否のルールに遭遇するまで、左から右に機能します。フォールバック動作は許可することです。

smtpd_recipient_restrictions = permit_auth_destination, reject_plaintext_session, permit_sasl_authenticated, reject
  • permit_auth_destination最初のルールとして、クライアントが私が責任を負っていると感じているユーザーにメールを配信できるようにします。クライアントは、TLSを使用するかどうかを選択できます。
  • reject_plaintext_session2番目のルールは、他のすべてのルールが暗号化されたチャネルを想定できることを確認します。
  • permit_sasl_authenticated自明です
  • reject最後のルールは基本的にデフォルトのポリシーを「拒否」に変更します。

SMTP認証なしでメールを受け入れたくない場合は、の最初のルールを削除することをお勧めしますsmtpd_recipient_restrictions

SSL証明書の構成とそれについてpostfixに伝える方法は示されていません(後者は簡単です)。

于 2010-12-01T04:52:49.940 に答える