背景
使用163邮箱发邮件
1.引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.获取授权码
3.配置属性
spring:
mail:
host: smtp.163.com
port:
username: 你的邮箱
#授权码
password: 配置步骤二中获取的授权码
properties:
mail.smtp.starttls.enable: true
3.编写测试类
package com.mark.web.common.mail;
import com.mark.BaseTest;
import org.junit.Test;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
/**
* @Description: 邮件发送测试类
* @Author: Mark
* @CreateDate: 2019/11/27 20:18
* @Version: 1.0
* @Copyright : 豆浆油条个人非正式工作室
*/
public class JavaMailSenderImplTest extends BaseTest {
@Resource
private JavaMailSenderImpl mailSender;
/**
* 发送内容的测试
*/
@Test
public void testSendText(){
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setSubject("告别单身");
mailMessage.setText("程序员相亲大会!");
mailMessage.setTo("1685368363@qq.com");
mailMessage.setFrom("13160675997@163.com");
mailSender.send(mailMessage);
}
/**
* 发送邮件中含有附件的测试
* @throws MessagingException ex
*/
@Test
public void testSendAttachment() throws MessagingException {
MimeMessage mimeMailMessage = mailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage,true);
mimeMessageHelper.setSubject("你有一张壁纸");
mimeMessageHelper.setText("我今年278岁壁纸");
//选择发送的附件
mimeMessageHelper.addAttachment("附件.jpg",new File("C:\\Users\\Mark\\Desktop\\test.png"));
mimeMessageHelper.setTo("1685368363@qq.com");
mimeMessageHelper.setFrom("13160675997@163.com");
mailSender.send(mimeMailMessage);
}
}
遇到的异常
org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp12,EMCowACnRmekfd5dCs+oBA--.951S3 1574862246,please see http://mail.163.com/help/help_spam_16.htm?ip=14.211.84.142&hostid=smtp12&time=1574862246
; message exception details (1) are:
Failed message 1:
com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp12,EMCowACnRmekfd5dCs+oBA--.951S3 1574862246,please see http://mail.163.com/help/help_spam_16.htm?ip=14.211.84.142&hostid=smtp12&time=1574862246
根据异常堆栈,访问http://mail.163.com/help/help_spam_16.htm?ip=14.211.84.142&hostid=smtp12&time=1574862246 说明信息如下:
•554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;
解决:发送的内容不含有测试内容,不要含有Test,测试…这些敏感词,就正常发送邮件即刻。