Liferay 6.1.20EE如何通过MailServiceUtil检查E-Mail是否成功发送

mar*_*olo 6 email service smtp liferay

我正在使用 Liferay 6.1.20 并且我的 Portlet 正在使用 Liferay 邮件服务通过 Liferay 配置的 SMTP 服务器发送电子邮件。

我现在的问题是:是否可以检查 SMTP 服务器是否可用,或者是否可以检查电子邮件是否已成功发送?如果 SMTP-Server 不可用,我想向用户提供输出。实际上我只在服务器控制台中看到以下行:

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
Run Code Online (Sandbox Code Playgroud)

我希望有人能给我一个解决方案。谢谢!

pet*_*cek 4

基本上有两个问题阻止您发现使用 MailServiceUtil 服务发送电子邮件时是否发生任何故障。

首先,消息通过 Liferay 消息总线异步发送,因此用户可以获得更快的响应,但你永远不知道途中是否出现任何故障。

其次,消息最终到达 MailEngine,所有异常都会被捕获并仅写入日志。

因此,我建议您使用 ext-plugin (位于 util-java 中)覆盖 MailEngine 类,以不同方式处理异常,然后直接从插件中使用它,而不是仅将所有内容推送到消息总线的 MailServiceUtil。