Spring的MailSender如何查找电子邮件

时间:2015-04-10 00:00:45

标签: java spring smtp javamail

我正在通过Gmail发送电子邮件。它发送电子邮件,但是当我输入错误的电子邮件地址时,它不会抛出异常;但是,电子邮件将发送给我。

我更改了我的电子邮件配置并且它抛出了身份验证例外,但它没有为错误的电子邮件地址抛出SendMail异常。

try {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(receiverEmail); //the value is xc@cvcbdfgxcvwesdc.org
        message.setCc(myEmailAddress);
        message.setSubject(subject);
        message.setText(msg);
        mailSender.send(message);

    } catch (MailSendException send) { //I used MailException as well
        send.printStackTrace();
    }

我添加了以下代码,但它没有显示任何内容

} catch (MailSendException send) { // failed to send /there is one other
                                            // type of exception
            System.err.println("failed messages size:" + send.getFailedMessages().size());

1 个答案:

答案 0 :(得分:2)

MailSender无法确定电子邮件是否在您想象的意义上反弹,至少在发送过程中没有。那里的代码只会告诉你代码中是否有异常阻止它发送电子邮件。

退回的电子邮件回复将会到达邮件服务器,在这种情况下,您需要实施一种机制,例如邮件接收渠道适配器 http://docs.spring.io/spring-integration/reference/html/mail.html

只有当您从邮件服务器中读取退回的电子邮件时,才能确定失败的原因,从而确定适当的响应。

希望这有点帮助。