通过发送电子邮件,我遇到以下异常:
org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. b10sm22671312wmi.34 - gsmtp
这是我用于发送电子邮件的代码:
MailRequest mailRequest = new MailRequest();
mailRequest.setSubject(messageByLocale.getMessage("mail.subject.forgetpassword"));
mailRequest.setTemplateName(messageByLocale.getMessage("mail.template.forgetpassword"));
mailRequest.setToEmail(tbNstyleloyalty.getEmail());
Map<String, Object> map = new HashMap<>();
map.put("tbNstyleloyalty", tbNstyleloyalty);
mailingConfig.sendEmail(mailRequest, map);
我的 sendEmail
方法是:
@Async
public void sendEmail(MailRequest mailRequest, Map<String, Object> model) {
MimeMessagePreparator preparator = new MimeMessagePreparator()
{
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setTo(mailRequest.getToEmail());
message.setSubject(mailRequest.getSubject());
message.setText(VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,templatePath + mailRequest.getTemplateName() + ".vm", ApplicationConstants.CHARSET_UTF8, model),true);
}
};
this.javaMailSender.send(preparator);
}
请帮助我克服这个问题。
谢谢!
最佳答案
谢谢各位的回答。您给出的所有答案都是正确的,但我无法理解应该在哪里添加此属性。
最后我补充一下:
spring.mail.properties.mail.smtp.starttls.enable = true
到我的属性文件,然后我就成功了。
关于java - 无法使用 Spring 框架发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42669659/