이것은 시도하고 겪은 일의 긴 목록을 포함하는 다소 긴 질문이므로 양해해 주시기 바랍니다. 요약은 이것이다.
- postfix를 사용하여 office365를 통해 우분투에서 이메일을 전달할 수 있습니다. 구성이 작동합니다.
- 이는 사용자 중 한 명으로만 작동합니다. 보다 구체적으로 office365에 대해 인증하는 사용자는 유일하게 유효한 "from"입니다.
자세한 내용은 다음과 같습니다. Amazon 클라우드에 여러 작업을 실행하는 컴퓨터가 있는데 상태를 메일로 받고 싶습니다. 직장에서 Office365를 사용하고 있어서 Office365를 통해 메일을 중계하고 싶습니다. 나는 postfix에 가장 익숙하므로 그것을 MTA로 사용했습니다.
구성은 ubuntu 12.04LTS
; postfix와 mail-utils를 설치했습니다.
company.com
이 예에서는 내 회사가 " "이고 문제의 컴퓨터(탄력적 IP 및 DNS 항목을 통해)가 " "이라고 가정하겠습니다 plaything.company.com
. 호스트 이름이 " plaything.company.com
"로 설정되어 있습니다./etc/mailname
alpha
Plaything에는 , bravo
, 을 (를) 등록한 사용자가 다음과 같습니다 charlie
.
다음 구성 파일이 있습니다.
alias_database = 해시:/etc/aliases alias_maps = 해시:/etc/aliases Append_dot_mydomain = 아니요 비프 = 아니 config_directory = /etc/postfix inet_interfaces = 모두 inet_protocols = ipv4 편지함_크기_한계 = 0 mydestination = plaything.company.com, localhost.company.com, , localhost myhostname = plaything.company.com mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/메일이름 readme_directory = 아니요 수신자_구분자 = + Relayhost = [smtp.office365.com]:587 sender_canonical_maps = 해시:/etc/postfix/sender_canonical smtp_sasl_auth_enable = 예 smtp_sasl_password_maps = 해시:/etc/postfix/sasl_passwd smtp_sasl_security_options = 익명 없음 smtp_sasl_tls_security_options = 익명 없음 smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = 예 smtpd_banner = $myhostname ESMTP $mail_name (우분투) smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = 예
기계가 호출될 때 나는 office365가 내가 소유하고 있음을 인식하고 office365에서 호출되는 사용자를 생성할 수 있도록 plaything.company.com
모든 적절한 DNS 항목을 등록하는 연습을 거쳤습니다 .plaything.company.com
[email protected]
Office365에서는 [email protected]
다른 이메일 주소를 [email protected]
.
그런 다음 다음과 같은 sender_canonical을 만들었습니다.
[이메일 보호됨] [이메일 보호됨]
다음과 같은 sasl_passwd 파일을 만들었습니다.
smtp.office365.com [email protected]:123456password123456
의 비밀번호는 다음과 같습니다 [email protected]
.1234...456
이 모든 설정을 완료한 후 alpha
다음 으로 로그인하세요.
우편[이메일 보호됨] 참조: 제목: 테스트 시험
모든 것이 훌륭하게 작동합니다. 이메일은 postfix로 전송되고 TLS는 챔피언처럼 작동하며 다음과 같이 인증됩니다 daemon@...
.[이메일 보호됨]Office365에서는 이메일 메시지를 받습니다.
bravo
문제는 컴퓨터에 로그인할 때 발생합니다 .
보낸 사람 [email protected]
은 Office365입니다.
상태=반송됨(호스트 smtp.office365.com[132.245.12.25]이 말했습니다: 550 5.7.1 클라이언트는 다음과 같이 보낼 수 있는 권한이 없습니다. 이 발신자(DATA 명령 끝에 대한 응답으로))
bravo@...
메일을 로 보내고 office365로 인증하려고 하기 때문입니다 daemon@...
. 작동 하는 이유 alpha@...
는 office365에서 [email protected]
.[email protected]
~ 안에Office365로 Postfix 릴레이,마일스 에릭슨질문에 다음과 같이 대답합니다.
Office365 호스팅 전자 메일 도메인에서 사용자로 Office365에 메일을 보내지 마세요. 대신 하위 도메인을 사용하세요. 예:[이메일 보호됨]대신에[이메일 보호됨]. services.mydomain.com 또는 사용하기로 결정한 모든 항목에 대해 SPF 레코드를 설정해도 문제가 되지 않습니다.
mail.messaging.microsoft.com에 대해 Office365 사용자로 인증하지 마세요. 포트 25에 연결하고 외부 SMTP 에이전트처럼 도메인에 메일을 전달하기만 하면 됩니다.
좋아요, 저는 #1을 완료했습니다. DNS에 해당 레코드가 있지만 대부분 Office365가 도메인 소유를 인식하면 관련이 없습니다.
해당 기록은 다음과 같습니다.
CNAME 레코드: - msoid.plaything.company.com - autodiscover.plaything.company.com
MX 레코드: - plaything.company.com(plaything-company-com.mail.protection.outlook.com)
TXT 레코드: - plaything.company.com(v=spf1 include:spf.protection.outlook.com -all)
#2를 시도했지만, 내가 무엇을 하든 office365는 "인증되지 않음"으로 연결을 날려버립니다. 포트 25에 대한 간단한 텔넷을 시도하고 전송을 시도할 수 있지만 작동하지 않습니다.
250 BY2PR01CA007.outlook.office365.com Hello [54.221.245.236]
530 5.7.1 Client was not authenticated
Connection closed by foreign host.
Linux 시스템의 여러 사용자가 office365를 통해 postfix를 사용하여 메일을 릴레이할 수 있는 이러한 종류의 구성을 사용하는 사람이 있습니까? 내 설정에 무엇이 문제인지 말해 줄 수 있는 누군가가 있어야 합니다...
답변1
한걸음 물러나야 할 것 같아요 :)
plaything
로 로그인한 경우 bravo
Plaything에서 보낸 모든 메일을 로 보내야 합니까 [email protected]
? 그렇지 않은 경우 모든 메일을 [email protected]
다음과 같이 보내십시오.실제 인터넷 호스트 이름이 없는 호스트의 접미사.
이것을 적용할 수 없다면 다음이 필요합니다.발신자 종속 SASL 맵. 설정에 약간의 복잡성이 추가되므로 이를 방지하기 위해 정말 열심히 노력하겠습니다.
마지막으로, plaything
메일을 로 보내려면 설정을 조정 및/또는 제거 [email protected]
해야 합니다 . 이 경우 메일 서버 평판 등과 같은 모든 장단점을 고려하여 모든 메일을 직접 배달합니다.myhostname
myorigin
relayhost
plaything