6

Liferay 6.1.20 を使用しており、ポートレットは Liferay メール サービスを使用して、Liferay で構成された SMTP サーバー経由で電子メールを送信しています。

私の質問は次のとおりです。SMTP サーバーが使用可能かどうかを確認することは可能ですか、または電子メールが正常に送信されたかどうかを確認することは可能ですか? SMTP サーバーが利用できない場合、ユーザーに出力を提供したいと考えています。実際、サーバーコンソールには次の行しか表示されません。

14:06:47,679 WARN  [liferay/mail-1][MailEngine:560] Failed to connect to a valid mail server. Please make sure one is properly configured. Could not connect to SMTP host: localhost, port: 25

誰かが私にその解決策を教えてくれることを願っています。ありがとう!

4

3 に答える 3

4

基本的に、MailServiceUtil サービスを使用して電子メールを送信するときに障害が発生したかどうかを検出するのを妨げる 2 つの問題があります。

まず、メッセージは Liferay メッセージ バスを介して非同期に送信されるため、ユーザーは応答が速くなりますが、途中で何かが失敗したかどうかはわかりません。

次に、メッセージは最終的に MailEngine に到達し、そこですべての例外がキャッチされ、ログにのみ書き込まれます。

そのため、MailEngine クラスを ext-plugin (util-java にあります) でオーバーライドして例外を別の方法で処理し、すべてをメッセージ バスにプッシュするだけの MailServiceUtil の代わりにプラグインから直接使用することをお勧めします。

于 2013-09-22T07:44:11.373 に答える