SMTPMessage - 交付通知状态工作奇怪

时间:2015-03-30 13:59:54

标签: java spring smtp javamail

我在尝试使用春季邮件发送电子邮件时收到投递通知。

如果我提供正确的'到电子邮件地址。它工作正常。我获得成功送货通知消息。
当我提供错误的'到电子邮件地址时,我收到了成功传递邮件和失败传递信息。

为什么它失败了? 我的代码有什么不对吗?

public class MailSender {

private static final Logger LOGGER = LoggerFactory
        .getLogger(MailSender.class);

@Autowired
private JavaMailSender javaMailSender;

public void sendEmail(FormData formData)
        throws AuthenticationFailedException, MessagingException {
        final Data data = formData.getData();
        MimeMessage message = javaMailSender.createMimeMessage();   

        MimeMessageHelper msgHelper = new MimeMessageHelper(message);
        msgHelper.setFrom(data.getFrom());
        msgHelper.setTo(data.getTo());
        msgHelper.setSubject(data.getSubject());
        msgHelper.setText(data.getBody());

        SMTPMessage smtpMessage = new SMTPMessage(message);
        smtpMessage.setReturnOption(SMTPMessage.RETURN_HDRS);
        smtpMessage.setNotifyOptions(SMTPMessage.NOTIFY_DELAY|SMTPMessage.NOTIFY_FAILURE|SMTPMessage.NOTIFY_SUCCESS);            
        javaMailSender.send(smtpMessage);


<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="${mail.host}" />
    <property name="port" value="25" />
    <!-- <property name="username" value="${mail.username}" />
    <proprty name="password" value="${mail.password}" />  -->

    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtp.auth">false</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">true</prop>
        </props>
    </property>
</bean>

成功消息:

  

主题:已转发:来自本地实例的示例邮件传递到这些   收件人或群组已完成,但没有送达通知   由目标服务器发送:

     

myalerts@mail.com


失败消息:

  

主题:无法送达:来自本地实例的示例邮件

     

向这些收件人或群组发送失败:

     

myalerts@mail.com   在将此邮件传递到此电子邮件地址期间出现问题。尝试再次发送此消息。如果问题仍然存在,请联系您的服务台。

注意:myalerts@mail.com是错误的邮件地址,用于测试失败的传递通知。 电子邮件功能正常。我正在寻找交付通知

1 个答案:

答案 0 :(得分:0)

您获得成功和失败通知,因为您在设置通知选项时都要求同时使用这两种通知。如果您从 邮件服务器收到相同消息的成功和失败通知,则您需要询问您的邮件服务器供应商为何会这样做&#39发生了。