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」です。
再度、感謝します。
Postfix(そして実際にはMTA)はFROMヘッダーを気にしません。
sender_dependent_relayhost_maps設定は、エンベロープ(SMTP MAIL FROM)アドレスを調べます。
例外の1つを使用してメールを送信しようとしたときに何が起こるかを示す関連ログを含めてください。
追加 []
のために 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