我在尝试使用春季邮件发送电子邮件时收到投递通知。
如果我提供正确的'到电子邮件地址。它工作正常。我获得成功送货通知消息。
当我提供错误的'到电子邮件地址时,我收到了成功传递邮件和失败传递信息。
为什么它失败了? 我的代码有什么不对吗?
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是错误的邮件地址,用于测试失败的传递通知。 电子邮件功能正常。我正在寻找交付通知
答案 0 :(得分:0)
您获得成功和失败通知,因为您在设置通知选项时都要求同时使用这两种通知。如果您从 邮件服务器收到相同消息的成功和失败通知,则您需要询问您的邮件服务器供应商为何会这样做&#39发生了。