Linux 상자에 Postfix 서버를 설정하여 모든 메일을 Office365 (Microsoft에서 호스팅하는 Exchange) 메일 서버로 릴레이하려고하지만 보내는 주소와 관련하여 계속 오류가 발생합니다.
BB338140DC1 : to = relay = pod51010.outlook.com [157.56.234.118] : 587, delay = 7.6, delays = 0.01 / 0 / 2.5 / 5.1, dsn = 5.7.1, status = bounced (호스트 pod51010.outlook.com [ 157.56.234.118] 말했다 : 550 5.7.1 고객에게이 발신자에게 전송할 권한이 없습니다 (DATA 명령 종료에 대한 응답으로)
Office 365에서는 MAIL FROM 및 From : 헤더의 발신 주소가 인증에 사용 된 주소와 같아야합니다. 이 작업을 수행하기 위해 구성에서 생각할 수있는 모든 것을 시도했습니다. 나의postconf -n:
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
debug_peer_list = 127.0.0.1
inet_interfaces = loopback-only
inet_protocols = all
mailbox_size_limit = 0
mydestination = xxxxx, localhost.localdomain, localhost
myhostname = localhost
mynetworks = 127.0.0.0/8
recipient_delimiter = +
relay_domains = our.doamin
relayhost = [pod51010.outlook.com]:587
sender_canonical_classes = envelope_sender
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_always_send_ehlo = yes
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = login
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_loglevel = 1
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
/etc/postfix/sender_canonical
:
www-data address@mydomain.com
root address@mydomain.com
www-data@localhost address@mydomain.com
root@localhost address@mydomain.com
또한 sasl_passwd
올바른 자격 증명으로 설정되어 있습니다 ( 스왑을 사용하여 여러 번 테스트 함 ). 인증이 작동하고 보낸 사람 헤더가 올 바르면 메시지를 보냅니다 ( 스왑을 사용하여 테스트 함 ).
이메일은 PHP에서 온 것이므로 sendmail 경로를 변경하여 php.ini
-f를 통해 올바른 발신 주소를 사용 하려고했습니다.
따라서 어떤 이유로 든 www-data 및 root 에서 오는 메일 에는 보낸 사람 필드가 Office 365의 만족도로 다시 쓰여지지 않았으며 메시지를 보내지 않습니다.
이 릴레이를 설치하는 데 도움이 될 수있는 접미사 전문가가 있습니까?
답변
나중에 누군가가 이것을 만난 경우를 대비하여. 마침내 적절한 이메일 릴레이가 작동했습니다. 이 문제는 Office 365가 원하지 않는 방식으로 봉투의 “FROM”요소를 형식화 한 이전 버전의 postfix를 사용하는 것과 관련이있었습니다. Postfix를 2.9 이상으로 업데이트하고 위와 같은 구성을 사용하면 문제가 해결되었습니다.
답변
해결책:
-
Office365 호스팅 전자 메일 도메인의 사용자로 Office365에 메일을 보내지 마십시오. address@mydomain.com 대신 address@services.mydomain.com과 같은 하위 도메인을 대신 사용하십시오. services.mydomain.com 또는 사용하기로 결정한 것에 대한 SPF 레코드를 설정해도 문제가되지 않습니다.
-
mail.messaging.microsoft.com에 대해 Office365 사용자로 인증하지 마십시오. 외부 SMTP 에이전트와 마찬가지로 포트 25에 연결하여 메일을 도메인으로 전달하십시오.
답변
일부 SASL 인증 모듈이 누락 된 것을 발견했습니다. 다음과 같이 수정했습니다.
yum install cyrus-sasl-plain cyrus-sasl-scram cyrus-sasl-md5 cyrus-sasl-ntlm
( 일반 모듈로 충분했을 것입니다)