SMTP异常处理

SMTP Exception handling

我正在开发一个在 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 FAQ 条目可能会有帮助:

我无法从你的问题中判断出你预期的是哪种错误,但你没有发现。而且我不知道为什么您只在 MessagingException 中寻找嵌入式 SocketExceptions。