0)背景:用springboot发简单的邮件
1)代码如下
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
applicaton.properties
spring.mail.host=smtp.qq.com
spring.mail.username=[email protected]
spring.mail.password=你的授权码
spring.mail.default-encoding=UTF-8
spring.mail.port=587
spring.mail.properties.mail.debug=true
spring.mail.properties.mail.stmp.socketFactory.class=javax.net.ssl.SSLSocketFactory
Controller
@RestController
public class QQMailController {
@Autowired
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
String from;
@GetMapping("/a")
public void a() {
System.out.println(">>>>>>>>>>>>>" + from);
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setTo("[email protected]");
simpleMailMessage.setCc(from);
simpleMailMessage.setSubject("测试邮件的主题");
simpleMailMessage.setText("测试邮件的内容内容asdfasdfasdfasdf!!!!");
simpleMailMessage.setFrom(from);
simpleMailMessage.setSentDate(new Date());
javaMailSender.send(simpleMailMessage);
}
}
问题:不管怎么配置总会有一些花里呼哨的问题,例如:501,smtp.qq.com连接失败等等问题,而且困扰了我好几个月,百度的答案也千奇百怪的,后来用同事的电脑(win7系统,我的是win10系统),一发送就成功了,刚开始我怀疑是系统的问题,但是很快就被否决了,我突然想到了电脑的名字,我的名字是中文的,后来改成英文的了,然后重启电脑就OK了…重点就是电脑名要是英文
如图(改之后的)