`sendmail -t`를 사용하여 Office365 계정을 통해 메일을 보낼 수 있도록 Debian에서 exim4를 올바르게 구성하려면 어떻게 해야 합니까?

`sendmail -t`를 사용하여 Office365 계정을 통해 메일을 보낼 수 있도록 Debian에서 exim4를 올바르게 구성하려면 어떻게 해야 합니까?

저는 Debian Stretch(9.4)를 사용하고 있습니다.

Office365 계정이 있습니다.

Evolution을 사용하면 POP3를 통해 메일을 성공적으로 다운로드할 수 있고 Evolution의 "이메일 보내기" 기본 설정을 사용하여 메일을 보낼 수도 있습니다.

Server: smtp.office365.com
Port: 587
Server requires authentication TICKED
Encryption method: STARTTLS after connecting
Authentication: Login
Username: <myid@mydomain>

Evolution을 처음 사용했을 때 Office365 비밀번호를 묻는 메시지가 표시되었으며 그 이후로는 문제가 없었습니다.

훌륭해요. 하지만:

sendmail -t또한 때때로 다음을 통해 프로그래밍 방식으로 이메일을 보내는 일부 crontab 스크립트도 있습니다.여기. 패키지 는 "스마트 호스트에서 보낸 메일, 로컬 메일 없음" 으로 구성되어 있으며 exim4-config나가는 스마트 호스트에는 smtp.office365.com::587./etc/exim4/passwd.clientsmtp.office365.com:<myid@mydomain>:<mypassword>

약 한 달 전까지만 해도(6월 첫째 주에 작동이 중단된 것 같습니다) 이 스크립트는 smtp.office365.com전혀 문제 없이 이메일을 보내고 있었습니다. 그러나 그 시점부터 이메일을 보내려고 할 때 /var/log/exim4/mainlog마다 다음과 같은 오류 메시지가 많이 나타납니다.

2018-06-12 22:04:37 XXXXXX-XXXXXX-XX <= <> R=XXXXXX-XXXXXX-XX U=Debian-exim P=local S=2270
2018-06-12 22:04:42 XXXXXX-XXXXXX-XX H=outlook.ms-acdc.office.com [40.100.174.194] TLS error on connection (recv): The TLS connection was non-properly terminated.
2018-06-12 22:04:42 XXXXXX-XXXXXX-XX H=outlook.ms-acdc.office.com [40.100.174.194] TLS error on connection (send): The specified session has been invalidated for some reason.
2018-06-12 22:04:42 XXXXXX-XXXXXX-XX ** <myid@mydomain> R=hub_user_smarthost T=remote_smtp_smarthost H=outlook.ms-acdc.office.com [40.100.174.194] X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=no DN="C=US,ST=Washington,L=Redmond,O=Microsoft Corporation,CN=outlook.com": SMTP error from remote mail server after pipelined MAIL FROM:<> SIZE=3347: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [LO2P265CA0067.GBRP265.PROD.OUTLOOK.COM]
2018-06-12 22:04:42 XXXXXX-XXXXXX-XX Frozen (delivery error message)

Microsoft 쪽에서 또는 내 쪽에서 변경된 사항이 있는지 확실하지 않습니다(내 컴퓨터는 기본 Debian stable amd64입니다. 작동이 중지되었을 때 관련 보안 업데이트가 적용되었는지 기억이 나지 않습니다). 나의심하다Microsoft는 어떤 방식으로든 인증을 강화했을 수 있으며 이를 처리하려면 exim4 구성에서 뭔가를 변경해야 합니다. (다시 강조하지만 Evolution은 smtp.office365.com:587아무런 문제 없이 동일한 채널을 통해 메일을 보내고 있습니다.) 혼란스러워서 sendmail -t이 작업을 다시 수행하는 방법에 대한 제안을 주시면 감사하겠습니다.

답변1

sendmail -t시스템 기능을 복원했습니다 .

/etc/exim4/passwd.client부분적으로 조사한 결과 내 보내는 메일이 을 통해 전송되기 때문에 에 DNS 이름을 나열하는 것만 man exim4_passwd_client으로는 실제로 충분하지 않을 수 있다는 것을 깨달았습니다 . 프로세스에 몇 가지 역방향 DNS 조회가 관련되어 있습니다. 사실, 일을 하는 것은 이라는 것으로부터 반응을 얻습니다 . 그래서 다음 줄을 포함하도록 파일을 업데이트했습니다.smtp.office365.compasswd.clientping smtp.office365.comoutlook.ms-acdc.office.com/etc/exim4/passwd.client

*.office.com:<myid@mydomain>:<mypassword>

이제 모든 것이 정상으로 돌아왔습니다. (이전에 *.office365.com파일에도 실제로 한 줄이 있다는 것을 알았습니다 passwd.client.추측하다exim4가 office365.com 또는 office.com 도메인 아래의 SMTP 서버에 연결하고 있다고 생각하는지 여부에 영향을 미치는 MS 설정의 변경 사항이 6월 초에 있었습니다.

물론 이제 문제는 Microsoft가 이전에 Hotmail로 알려진 서비스의 또 다른 브랜드 변경을 결정하고 모든 DNS 이름이 다시 변경되기까지 시간이 얼마나 걸릴 것인가입니다. ^)

업데이트 2021-06-10: 지난 주 동안 내 스크립트의 sendmail이 신뢰할 수 없게 된 것 같습니다(완전한 실패는 아니지만 때로는 문제가 해결되는 경우도 있음). 이제 ; ping smtp.office365.com에서 응답을 받는데 파일에 한 줄을 추가하면 문제가 해결된 것 같습니다. 분명히 Azure 인프라의 일부인 것 같습니다. Microsoft가 그 방향으로 움직이고 있는 것 같습니다. 어떤 이유로 새 구성이 롤백될 때 유효한 스크립트가 전송되는 경우가 있습니다.lhr-mvp.trafficmanager.net*.trafficmanager.net:<myid@mydomain>:<mypassword>/etc/exim4/passwd.clienttrafficmanager.net

관련 정보