版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzl19870309/article/details/70733303
使用java实现邮件发送,今天遇到个authentication is required
代码如下:
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send e-mail[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",isMultipart, isHtml, to, subject, content);
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent e-mail to User '{}'", to);
} catch (Exception e) {
log.warn("E-mail could not be sent to user '{}', exception is: {}", to, e.getMessage());
}
}
结果报错:authentication is required
最后解决方案是在javaMailSender中增加了【mail.smtp.auth】设置,设置方法如下:
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send e-mail[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",isMultipart, isHtml, to, subject, content);
Properties props = new Properties(); // 参数配置
props.setProperty("mail.smtp.auth", "true"); // 需要请求认证
javaMailSender.setJavaMailProperties(props);
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
message.setTo(to);
message.setFrom(new InternetAddress(jHipsterProperties.getMail().getFrom(), "电子商城", "UTF-8")); //设置邮件显示的发送人
message.setSubject(subject); //主题
message.setText(content, isHtml); //文件内容,html
javaMailSender.send(mimeMessage); //发送
log.debug("Sent e-mail to User '{}'", to);
} catch (Exception e) {
log.warn("E-mail could not be sent to user '{}', exception is: {}", to, e.getMessage());
}
}
测试发送成功