SMTP异常处理



我正在开发一个在Liferay中发送邮件的代码。。。这里的问题是我想发送一条错误消息

portletRequest.setAttribute("mailError", new String("smobile.error.mail"))

当邮件服务器(SMTP)关闭时。。

这是源代码。

try {
    MailMessage mailMessage = new MailMessage();
    mailMessage.setFrom(new InternetAddress(fromEmail));
    mailMessage.setSubject(subjectTemplate);
    mailMessage.setBody(bodyTemplate);
    mailMessage.setHTMLFormat(true);
    mailMessage.setTo(new InternetAddress(toEmail));
    // Send Mail
    MailServiceUtil.sendEmail(mailMessage);
    _log.info("Confirmation email sent with success!");
} catch(MessagingException me) {
    if (me.getNextException() instanceof SocketException) {
        _log.warn("EMAIL ENGINE ERROR");
        portletRequest.setAttribute("mailError", new String("smobile.error.mail"));
    }
    throw new MailEngineException(me);
}

非常感谢。

这个JavaMail常见问题条目可能会有所帮助:

  • 如果我把信息发到了一个不好的地址,为什么不给我一个SendFailedException或TransportEvent,指示地址为糟糕

我无法从你的问题中判断出你预计会犯什么样的错误。我不知道为什么你只在MessagingException中寻找嵌入的SocketException。

最新更新