web-dev-qa-db-ja.com

「sendmail-t」を使用してoffice365アカウント経由でメールを送信できるように、Debianでexim4を正しく構成するにはどうすればよいですか?

私はDebianストレッチ(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.client行を含むsmtp.office365.com:<myid@mydomain>:<mypassword>もあります。

約1か月前まで(6月の第1週に機能しなくなったと思います)、これらのスクリプトは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側と私の側のどちらで何かが変更されたかはわかりません(私のマシンはVanilla Debianの安定したAMD64です。動作が停止した頃に、関連するセキュリティ更新プログラムが適用されたかどうかは思い出せません)。私suspectMicrosoftは何らかの方法で認証を強化した可能性があり、それに対処するためにexim4構成で何かを変更する必要があります(繰り返しますが) Evolutionは、同じsmtp.office365.com:587チャネルを介して、問題なくメールを送信してきました)。 sendmail -tメソッドを再び機能させる方法についての提案に戸惑い、感謝しています。

1
timday

システムのsendmail -t機能を復元しました。

/etc/exim4/passwd.clientman exim4_passwd_clientのセクションを調べたところ、送信メールがsmtp.office365.com経由で送信されているからといって、passwd.clientにDNS名を記載するだけでは実際には不十分であることがわかりました。 ..プロセスにはDNSの逆引き参照が含まれています。 ping smtp.office365.comを実行すると、実際にはOutlook.ms-acdc.office.comと呼ばれるものから応答が返されます。そこで、/etc/exim4/passwd.clientファイルを更新して行を含めました

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

そして今、すべてが再び機能しています。 (以前、実際には*.office365.comファイルにpasswd.client行もあったことに注意してください。私のguessは、6月上旬にMSのセットアップで何かが変更され、exim4がそれを認識したかどうかに影響します。 office365.comまたはoffice.comドメインでSMTPサーバーに接続していました)。

もちろん、今の問題は、Microsoftが以前はHotmailと呼ばれていたサービスのさらに別のブランド変更を決定し、すべてのDNS名が再び変更されるまでにどれくらいの時間がかかるかです:^)

2
timday