我正在使用Liferay 6.1.20而我的Portlet正在使用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
我希望有人可以给我一个解决方案。谢谢!
答案 0 :(得分:3)
基本上有两个问题会阻止您发现使用MailServiceUtil服务发送电子邮件时是否发生任何故障。
首先,消息通过Liferay消息总线异步发送,因此用户可以获得更快的响应,但您不知道路上是否有任何故障。
其次,消息最终会到达MailEngine,其中所有异常都被捕获并且只写入日志。
所以,我建议你用ext-plugin(它在util-java中)覆盖MailEngine类,以不同方式处理异常,然后直接从你的插件中使用它而不是MailServiceUtil,它只将所有内容推送到消息总线
答案 1 :(得分:0)
从Liferay 6.2开始,如果在portal-ext.properties文件中设置 mail.throws.exception.on.failure = true ,则MailEngine类还将在其上抛出<script>
document.write('script');
</script>
<noscript>
noscript
</noscript>
错误,而不仅仅是记录。