2013-06-20 3 views
0

(전송) ...PHP + 접미사 + 아마존 SES + 다중 도메인 내가 거기에 작은이다 내 질문의 거의 80 %가 답이있는 공동체로서, 저기 serverfault 여기가 아니라이 게시하기로 결정했습니다

그래서 저는 x.com, y.com 및 z.com의 3 개 도메인으로 서버를 분리했습니다. x.com은 내부적으로 릴레이하고, y.com은 내부적으로 릴레이하며, z.com은 아마존 SES를 통해 중계해야합니다.

지금 x와 y.com은 내부적으로 올바르게 메일을 보내지 만 SES를 통해 릴레이하려면 z.com이 필요합니다.

그래서, 내 설정 지금까지 main.cf의 :

sender_dependent_relayhost_maps = 해시 :은/etc/후위/sender_transport domainz_sasl_auth_enable = 예 domainz_sasl_security_options = noanonymous domainz_sasl_password_maps = 해시 :은/etc/후위/sas2_passwd domainz_use_tls = 예 domainz_tls_security_level = 암호화 domainz_tls_note_starttls_offer = 예 domainz_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

내 master.cf에서

, 나는했습니다 기본 SMTP 위의 유닉스 채널 ppended : - - N -

domainz 유닉스 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에서 메일을 푸시 할 때 발생하는 오류입니다. "상태 = 반송 됨 (호스트 또는 도메인 이름을 찾을 수 없음. name = domainz 유형에 대한 이름 서비스 오류 = AAAA : 호스트를 찾을 수 없음)"; 그래서 우리가 아마존의 SES 호스트에 도착하기 전에, 나는 알아낼 수없는 전송 레벨에서 문제를 겪고 있습니다.

덕분에, 마이크이 문제를 해결하기 위해 노력의 거의 24 시간 후에

답변

1

, 나는 마침내 그것을 알아 냈어. 이 방법을 사용하고자하는 사람들이 도움이되기를 바랍니다. 이제 막 경험 한 고통을 헤쳐 나갈 필요가 없습니다.

위의 예에서 도메인 x + y는 가상 별칭을 통해 릴레이되었습니다. z의 경우 전송을 사용해야합니다.이 경우 "sender_dependent_relayhost_maps"전송 이었기 때문에 발신자를 포착하여 아마존 SES를 통해 전달할 수 있습니다. main.cf에서

에 관계없이 "SMTP/유닉스 소켓"의, 우리는 똑바로 SES 표준을 사용 smtp_sasl_auth_enable = 예 smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = 해시 :은/etc/후위/SAS smtp_use_tls = 예 smtp_tls_security_level = 암호화 smtp_tls_note_starttls_offer = 예 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"파일에는 일치하는 릴레이의 user : 키가 저장됩니다.

그리고 그게 전부입니다!