web-dev-qa-db-ja.com

送信者ごとのSASL認証用にpostfixを設定する方法

2つのGmailアカウントがあり、送信者アドレスに依存する資格情報を使用してsmtp.gmail.com:587でSASL認証を行うクライアントとしてローカルPostfixサーバーを構成したいと思います。

それで、私のGmailアカウントが[email protected][email protected]であるとしましょう。 FROMヘッダーフィールドに[email protected]を含むメールを送信した場合、postfixは資格情報[email protected]:psswd1を使用してGmailSMTPサーバーでSASL認証を行う必要があります。 [email protected]と同様に、[email protected]:passwd2を使用する必要があります。かなり単純に聞こえます。

さて、私は http://www.postfix.org/SASL_README.html のpostfix公式ドキュメントに従いました、そして私は次の関連する構成に行き着きました:

/etc/postfix/main.cf

    smtp_sasl_auth_enable = yes
    smtp_sasl_security_options = noanonymous
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sender_dependent_authentication = yes
    sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay

    smtp_tls_security_level = secure
    smtp_tls_CAfile = /etc/ssl/certs/Equifax_Secure_CA.pem
    smtp_tls_CApath = /etc/ssl/certs
    smtp_tls_session_cache_database = btree:/etc/postfix/smtp_scache
    smtp_tls_session_cache_timeout = 3600s
    smtp_tls_loglevel = 1
    tls_random_source = dev:/dev/urandom

    relayhost = smtp.gmail.com:587

/ etc/postfix/sasl_passwd

    [email protected]      [email protected]:passwd1
    [email protected]      [email protected]:passwd2

    smtp.gmail.com:587  [email protected]:passwd1

/ etc/postfix/sender_relay

    [email protected]      smtp.gmail.com:587
    [email protected]      smtp.gmail.com:587

構成が完了したら、次のようにします。

    $ postmap /etc/postfix/sasl_passwd
    $ postmap /etc/postfix/sender_relay
    $ /etc/init.d/postfix restart

問題は、[email protected]からメールを送信すると、メッセージの宛先が[email protected]ではなく送信者アドレス[email protected]になることです。つまり、postfixは常に送信者ごとの構成を無視します。デフォルトの資格情報(上記の/etc/postfix/sasl_passwdの3行目)を使用してメールを送信します。私は構成を複数回チェックし、同じ問題に対処しているさまざまなブログ投稿の構成と比較しましたが、それらは私のものとほぼ同じであることがわかりました。それで、私が何かを逃した場合に備えて、誰かが私を正しい方向に向けることができますか?

どうもありがとう。

[〜#〜]編集[〜#〜]

[email protected]から別の「難読化された」メールアドレス[email protected]にメールを送信すると、/ var/log /mail.logに何が入りますか。

            Sep 11 17:28:24 Host postfix/pickup[13235]: D0E71A4167D: uid=1000 from=<marwan>
    Sep 11 17:28:24 Host postfix/cleanup[13259]: D0E71A4167D: message-id=<20120911152824.GX10881@Host>
    Sep 11 17:28:24 Host postfix/qmgr[13236]: D0E71A4167D: from=<marwan@Host>, size=413, nrcpt=1 (queue active)
    Sep 11 17:28:25 Host postfix/smtp[13263]: setting up TLS connection to smtp.gmail.com[173.194.70.108]:587
    Sep 11 17:28:25 Host postfix/smtp[13263]: Verified TLS connection established to smtp.gmail.com[173.194.70.108]:587: TLSv1 with cipher RC4-SHA (128/128 bits)
    Sep 11 17:28:32 Host postfix/smtp[13263]: D0E71A4167D: to=<[email protected]>, relay=smtp.gmail.com[173.194.70.108]:587, delay=7.8, delays=0.1/0/2.7/5, dsn=2.0.0, status=sent (250 2.0.0 OK 1347377285 25sm9995878bkx.9)
    Sep 11 17:28:32 Host postfix/qmgr[13236]: D0E71A4167D: removed

MAIL FROMコマンドについては、tlsログレベルを上げたときに気づきました。

    Sep 11 18:26:53 Host postfix/smtp[14287]: Write 42 chars: MAIL FROM:<marwan@Host> SIZE=405 AUTH=<>

では、MAIL FROMコマンドには[email protected]が含まれているはずですか?もしそうなら、私はそれをそのようにするために何をすべきですか。

ところで、私はその最後の行を編集しませんでした。私のローカルホスト名は「Host」で、ローカルusenameは「marwan」です。

再度、感謝します。

3
Marwan Tanager

Postfix(そして実際にはMTA)はFROMヘッダーを気にしません。
sender_dependent_relayhost_maps設定は、エンベロープ(SMTP MAIL FROM)アドレスを調べます。

例外の1つを使用してメールを送信しようとしたときに何が起こるかを示す関連ログを含めてください。

3
adaptr

追加 [] のために isp.mailcom 両者に sasl_passwdおよびsender_relayファイル。

例えば。

/etc/postfix/sasl_passwd

[email protected]      [email protected]:passwd1
[email protected]      [email protected]:passwd2

[smtp.gmail.com]:587  [email protected]:passwd1

/etc/postfix/sender_relay

[email protected]      [smtp.gmail.com]:587
[email protected]      [smtp.gmail.com]:587
0
Yu LIN