其他分享
首页 > 其他分享> > springboot 整合mail 发送邮件

springboot 整合mail 发送邮件

作者:互联网

springboot 整合mail 发送邮件

 

pom.xml

<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>


application.properites

# 应用名称
spring.application.name=mail
# 应用服务 WEB 访问端口
server.port=8080
# THYMELEAF (ThymeleafAutoConfiguration)
# 开启模板缓存(默认值: true )
spring.thymeleaf.cache=true
# 邮箱用户名
spring.mail.username=359073594@qq.com
# 授权码
spring.mail.password=qltrocunzsqvcbdc
# 邮箱主机
spring.mail.host=smtp.qq.com
# 开启SSL
spring.mail.properties.mail.smtp.ssl.enable=true
# 认证
spring.mail.properties.mail.smtp.auth=true
# 开启SSL安全模式
spring.mail.properties.mail.smtp.starttls.enable=true
# 必须启动SSL安全模式
spring.mail.properties.mail.smtp.starttls.required=true
# SSL Config
# 端口
spring.mail.port=465
# 协议
spring.mail.protocol=smtp
# 默认编码
spring.mail.default-encoding=UTF-8
# 套接字工厂端口
spring.mail.properties.mail.smtp.socketFactory.port=465
# 套接字工厂类
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

// 发送邮件的方法
@RestController
@RequestMapping("/mail")
public class Demo2 {

//template模板引擎
@Autowired
private TemplateEngine templateEngine;

@Autowired
private JavaMailSender javaMailSender;
@RequestMapping("/send")
public String send() {

//建立邮件消息
SimpleMailMessage message = new SimpleMailMessage();
// 发送人的邮箱
message.setFrom("359073594@qq.com");
//标题
message.setSubject("测试邮件");
//发给谁 对方邮箱
message.setTo("359073594@qq.com");
//内容
message.setText("这是一封测试的邮件");
try {
//发送
javaMailSender.send(message);
} catch (MailException e) {
throw new RuntimeException("邮件发送失败");
}
return "发送完成!";
}

@RequestMapping("/tempSend")
public String tempSend() {
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true);
// 发送人的邮箱
messageHelper.setFrom("359073594@qq.com");
//发给谁 对方邮箱
messageHelper.setTo("359073594@qq.com");
//标题
messageHelper.setSubject("测试邮件");
//使用模板thymeleaf
//Context是导这个包import org.thymeleaf.context.Context;
Context context = new Context();
//定义模板数据
HashMap<String, Object> map = new HashMap<>();
map.put("username","法外狂徒张三");
List<User> list = new ArrayList<>();
for (int i = 0; i < 4; i++) {
User user = new User("list"+i,"而非留守",23+i);
list.add(user);
}
map.put("listUser",list);
map.put("img","../static/2.jpg");
context.setVariables(map);
//获取thymeleaf的html模板
String emailContent = templateEngine.process("indexPatternMail.html",context); //指定模板路径

messageHelper.setText(emailContent,true);
//添加图片
FileSystemResource file = new FileSystemResource(new File(Demo2.class.getResource("/static/2.jpg").getFile()));
messageHelper.addInline("test001", file);
//发送邮件
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
throw new RuntimeException("邮件发送失败");
}
return "发送成功了啊!";
}

@RequestMapping("/sendImageMail")
public void sendImageMail() throws MessagingException {
//创建message
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
//发件人
helper.setFrom("359073594@qq.com");
//收件人
helper.setTo("359073594@qq.com");
//标题
helper.setSubject("测试邮件");
//true指的是html邮件,false指的是普通文本
helper.setText("<h1 style='color:red'>helloWorld</h1><img src='cid:test001'/>", true);
//添加图片
FileSystemResource file = new FileSystemResource(new File(Demo2.class.getResource("/static/2.jpg").getFile()));
helper.addInline("test001", file);
//发送邮件D:\java_code\email\src\main\resources\static\2.jpg
javaMailSender.send(message);
}


}
// 携带附件信息
 public void sendMimeMessage() throws Exception {
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom("mail sender");
        helper.setTo("mail receiver");
        helper.setSubject("title");
        File file = new File("your file");
        helper.addAttachment(file.getName(), file);
        // 带附件邮件正文必须显式设置一次,可以为空字符
        helper.setText("hello world");
        mailSender.send(message);
    }


// 模板的集合遍历

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>title</title>
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
<h3>你看我<span style="font-size: 35px" th:text="${username}"></span>, 哈哈哈!</h3>
<div>
<table >
<tr>
<th>名称</th>
<th>年龄</th>
<th>英雄</th>
</tr>
<tr th:each="c, State : ${listUser}">
<td th:text="${c.name}"></td>
<td th:text="${c.age}"></td>
<td th:text="${c.lol}"></td>
</tr>
</table>
</div>
<h1 style='color:red'>helloWorld</h1><img src='cid:test001'/>
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
console.log('123');
var option = {
title: {
text: '第一个 ECharts 实例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
 

标签:springboot,helper,spring,new,mail,message,true,邮件
来源: https://www.cnblogs.com/niCong/p/16552171.html