2013-06-20 33 views
0

我決定在這裏,而不是發佈此上serverfault,因爲社區有小而近80%的我的問題是沒有答案......PHP +後綴+亞馬遜SES +多個域(傳輸)

因此,我有3個域的服務器:x.com,y.com和z.com。 x.com內部繼電器,y.com內部繼電器,z.com應通過亞馬遜SES繼電器。

現在,x和y.com郵件在內部正確發送,但我需要z.com通過SES進行中繼。

所以,我的配置至今在main.cf:

sender_dependent_relayhost_maps =哈希:/等/後綴/ sender_transport domainz_sasl_auth_enable = YES domainz_sasl_security_options = noanonymous domainz_sasl_password_maps =哈希:/等/後綴/ sas2_passwd domainz_use_tls = YES domainz_tls_security_level =加密 domainz_tls_note_starttls_offer = YES domainz_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

,並在我的master.cf,我有一個ppended一個UNIX通道上方默認的SMTP:

domainz UNIX - - N - 1 SMTP SMTP INET N - N - - smtpd的

,在我sender_transport我有

@ domainZ.com domainz: 1.我在哪裏輸入「email-smtp.us-east-1.amazonaws.com」的ses smtp。我假設我們需要打「domainz:」,所以我們可以將正確的sasl數據傳遞給它。 2.請記住,這是郵件從服務器發出,而不是在,所以這就是爲什麼我沒有設置transport_map。 這是從@domainz推出郵件時出現的錯誤: 「status = bounced(主機或域名未找到。名稱= domainz type = AAAA:主機未找到名稱服務錯誤)」;所以在我們甚至可以到達亞馬遜的SES主機之前,我在運輸層面遇到了一個我似乎無法解決的問題。

謝謝, 邁克

回答

1

近24個小時的努力來解決這個之後,我終於想通了。我希望這能幫助任何想用這種方法的人,而不必經歷我剛剛經歷的痛苦!

所以在我上面的例子中,通過虛擬別名中繼域x + y。對於z我們必須使用一個運輸工具,在這種情況下,它是一個「sender_dependent_relayhost_maps」運輸工具,所以我可以抓住發件人並通過亞馬遜SES傳遞它們。

main.cf中,無論 「SMTP/UNIX的插座」,我們直上使用SES標準: smtp_sasl_auth_enable = YES smtp_sasl_security_options = noanonymous smtp_sasl_password_maps =哈希:/等/後綴/ SAS smtp_use_tls = YES smtp_tls_security_level =加密 smtp_tls_note_starttls_offer = YES smtp_tls_CAfile =的/ etc/SSL /證書/ CA-bundle.crt

在sender_dependent_relayhost_maps我們使用: @ domainz.com [email-smtp.us-east-1.amazonaws.com ]:25

「smtp_sasl_password_maps」文件存儲匹配中繼的用戶:密鑰。

就是這樣!