欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot发简单邮件的正确姿势

程序员文章站 2022-06-16 08:46:39
...

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=aaa@qq.com
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("aaa@qq.com");// 发给谁
		simpleMailMessage.setCc(from);//抄送给谁
		simpleMailMessage.setSubject("测试邮件的主题");// 邮件主题
		simpleMailMessage.setText("测试邮件的内容内容asdfasdfasdfasdf!!!!");// 内容
		simpleMailMessage.setFrom(from);//谁发(必须写application.properties文件里面配置的spring.mail.username)
		simpleMailMessage.setSentDate(new Date());//发送时间
		javaMailSender.send(simpleMailMessage);
	}
}

问题:不管怎么配置总会有一些花里呼哨的问题,例如:501,smtp.qq.com连接失败等等问题,而且困扰了我好几个月,百度的答案也千奇百怪的,后来用同事的电脑(win7系统,我的是win10系统),一发送就成功了,刚开始我怀疑是系统的问题,但是很快就被否决了,我突然想到了电脑的名字,我的名字是中文的,后来改成英文的了,然后重启电脑就OK了…重点就是电脑名要是英文如图(改之后的)

SpringBoot发简单邮件的正确姿势