近期学习java后台开发,学到了springboot发送邮件。感觉这也算是一个很实用的知识点,就在这里总结下,方便以后用。也方便大家学习。
准备工作
- 1,有一点java基础和springboot基础
- 2,有163邮箱
步骤
- 1,用idea新建springboot项目,如果不知道怎么用idea新建springboot项目请自行百度
- 2,建好项目后在pom.xml文件中引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 3,在配置文件application.properties中添加如下配置
spring.mail.host=smtp.163.com
spring.mail.username=你的163邮箱
spring.mail.password=注意这里不是邮箱密码,而是SMTP授权密码
spring.mail.port=25
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
上面提到的smtp的授权密码的获取下面给出图解
开启smtp权限.png
获取smtp授权密码.png
注意:你这里设置的授权密码就是商品配置信息中要输入的密码
- 4,下面上代码
package com.qcl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.test.context.junit4.SpringRunner;
import javax.mail.internet.MimeMessage;
/*
* 小石头
* 2501902696@qq.com
* */
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootJmsApplicationTests {
@Test
public void contextLoads() {
}
@Autowired
private JavaMailSenderImpl mailSender;
/**
* 发送包含简单文本的邮件
*/
@Test
public void sendTxtMail() {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
// 设置收件人,寄件人
simpleMailMessage.setTo(new String[]{"2501902696@qq.com", "1587072557@qq.com"});
simpleMailMessage.setFrom("15611823564@163.com");
simpleMailMessage.setSubject("Spring Boot Mail 邮件测试【文本】");
simpleMailMessage.setText("这里是一段简单文本。");
// 发送邮件
mailSender.send(simpleMailMessage);
System.out.println("邮件已发送");
}
/**
* 发送包含HTML文本的邮件
*
* @throws Exception
*/
@Test
public void sendHtmlMail() throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
mimeMessageHelper.setTo("2501902696@qq.com");
mimeMessageHelper.setFrom("15611823564@163.com");
mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【HTML】");
StringBuilder sb = new StringBuilder();
sb.append("<html><head></head>");
sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p></body>");
sb.append("</html>");
// 启用html
mimeMessageHelper.setText(sb.toString(), true);
// 发送邮件
mailSender.send(mimeMessage);
System.out.println("邮件已发送");
}
}
我这里是用单元测试直接跑的。下面看下接收到的效果
接收到测试发送的邮件.jpg
网友评论