問題
-
smtp.office365.comで設定した場合、メール通知が正常に送信されない。 メール送信中に以下のようなエラーが発生します。
1) 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [MA1PR01CA0089.INDPRD01.PROD.OUTLOOK.COM] com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [MA1PR01CA0089.INDPRD01.PROD.OUTLOOK.COM]"
2)ERROR [liferay/mail-1][MailEngine:74] Unable to send message: 554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; Failed to process message due to a permanent exception with message Cannot submit message.
0.35250:CF050000, 1.36674:0A000000, 1.61250:00000000, 1.45378:02000000, 1.44866:D01F0000, 1.36674:0E000000, 1.61250:00000000, 1.45378:D51F0000, 1.44866:22010000, 16.55847:E10F000
Environment
- Liferay DXP 7.1およびDXP 7.2
解決策
-
Liferay DXP 7.1用
- 観測された動作は既知の問題であり、 fixpack dxp-18 で修正されています。
- Liferay DXPへのFix PackとHotfixのインストール では、お客様の環境でのFixpackのインストール方法をご案内しています。
-
なお、修正プログラムをインストールした後、本ソリューションが動作するためには、いくつかの手動による設定手順が必要になることをご了承ください。
-
mail.session.mail.smtp.starttls.enable=true の設定は不要になりました。デフォルトで有効になっています。 コントロールパネル -> 設定 -> サーバー管理 -> メールで変更することができます。
-
Office 365は同時接続に制限があります
https://stackoverflow.com/questions/56088272/432-4-3-2-storedrv-clientsubmit-sender-thread-limit-exceeded
https://docs.microsoft.com/en-us/exchange/troubleshoot/send-emails/smtp-submission-improvementsLiferay は liferay/mail destination を使用します。これは ParallelDestination. これに適応するためには、並列接続先を1スレッドだけに設定し(via workersCoreSize and workersMaxSize nononstructor args in mail-spring.xml)、Office 365への同時接続数を制限する必要があります。 ROOT/WEB-INF/classes/META-INFにあるext-spring.xmlで実現可能です。 ext-spring.xml
を ROOT/WEB-INF/classes/META-INF にコピーして、サーバーを再起動してください。
-
-
Liferay DXP 7.2用
- fixpack dxp-5で観測された動作は修正されています。
追加情報
-
Fix Packをインストールする前に、以下のことを行うことを強くお勧めします:
- 修正パックをインストールする前に、既存の環境のバックアップをとっておいてください。
- まずは「下位の環境」で試してみて、うまくいったら本番環境に移行してください。
- これらの操作は、サーバーの再起動が必要なため、アプリケーションサーバーのダウンタイムに実行します。
- Liferay でメール通知を送信するために outlook メールサーバーを設定/使用する方法 は、Liferay で office365 を設定するのに役立ちます。