spring boot如何加入mail邮件支持
作者:默闻120 时间:2021-09-27 15:12:57
这篇文章主要介绍了spring boot如何加入mail邮件支持,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一、添加依赖
<!-- 邮件整合 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
二、添加mail.properties配置文件
#设置邮箱主机
spring.mail.host=smtp.qq.com
#设置用户名
spring.mail.username=xxxxxxx
#设置密码
#QQ邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得QQ的授权码
spring.mail.password=xxxxxxxxxxxxxxxx
#端口
spring.mail.port=465
#协议
#spring.mail.protocol=smtp
#设置是否需要认证,如果为true,那么用户名和密码就必须的,
#如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。
spring.mail.properties.mail.smtp.auth=true
#STARTTLS[1] 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
三、添加MailConfig.java
package com.spring.config;
import java.io.File;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
@Configuration
public class MailConfig {
@Resource
private JavaMailSenderImpl mailSender;
@Value("${spring.mail.username}")
private String username;
/**
* 发送纯文本形式的email
*
* @param toEmail 收件人邮箱
* @param title 邮件标题
* @param content 邮件内容
*/
public void sendTextMail(String toEmail, String title, String content) {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(username);
msg.setTo(toEmail);
msg.setSubject(title);
msg.setText(content);
mailSender.send(msg);
}
/**
* 发送带有html的内容
*
* @param toEmail 收件人邮箱
* @param title 邮件标题
* @param htmlContent 邮件内容
*/
public void sendHtmlMail(String toEmail, String title, String htmlContent) throws MessagingException {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8");
helper.setFrom(username);
helper.setTo(toEmail);
helper.setSubject(title);
helper.setText(htmlContent, true);
mailSender.send(msg);
}
/**
* 添加附件的email发送
*
* @param toEmail 收件人地址
* @param title 邮件标题
* @param content 文本内容
* @param aboutFiles 附件信息 每个子项都是一个文件相关信息的map Map<String,String>: 1.filePath
* 2.fileName
* @throws Exception 异常
*/
public void sendAttachmentMail(String toEmail, String title, String content, List<Map<String, String>> aboutFiles) throws Exception {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
helper.setFrom(username);
helper.setTo(toEmail);
helper.setSubject(title);
helper.setText(content);
FileSystemResource resource = null;
for (Map<String, String> file : aboutFiles) {
resource = new FileSystemResource(file.get("filePath"));
if (resource.exists()) {// 是否存在资源
File attachmentFile = resource.getFile();
helper.addAttachment(file.get("fileName"), attachmentFile);
}
}
mailSender.send(msg);
}
}
四、使用MailConfig
@Autowired
private MailConfig mailConfig;
使用MailConfig里面的方法发送即可以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
来源:https://www.cnblogs.com/mowen120/p/12013290.html
标签:spring,boot,mail,邮件,支持
0
投稿
猜你喜欢
springboot相关面试题汇总详解
2023-10-06 17:16:11
Spring Boot实现数据访问计数器方案详解
2022-12-17 08:40:16
Java魔法堂之调用外部程序的方法
2023-11-09 07:14:16
C#使用有道ip地址查询接口方法实例详解
2022-10-08 22:07:31
android手机端与PC端使用adb forword通信
2022-09-15 14:17:35
Java OpenCV4.0.0实现实时人脸识别
2023-11-16 07:29:14
Android UI 实现老虎机详解及实例代码
2022-06-09 05:01:30
Android Bitmap和Drawable相互转换的简单代码
2022-01-26 11:09:01
Eclipse自定义启动画面和图标的方法介绍
2022-05-14 09:27:13
Android如何让WebView中的HTML5页面实现视频全屏播放
2023-07-29 00:32:06
Struts2拦截器Interceptor的原理与配置实例详解
2022-06-23 17:34:45
C# 常用日期时间函数(老用不熟)
2021-08-21 10:12:18
flutter Bloc 实现原理示例解析
2023-07-18 08:00:39
关于Spring源码是如何解决Bean的循环依赖
2023-09-16 14:15:17
SpringBoot @CompentScan excludeFilters配置无效的解决方案
2022-08-01 09:06:42
Java深入讲解Object类常用方法的使用
2022-11-22 00:16:51
Java类成员访问权限控制知识总结
2021-09-12 10:36:53
退出Android程序时清除所有activity的实现方法
2021-10-09 23:49:30
android多种滑动冲突的解决方案
2021-11-16 11:20:10
Android UI设计系列之自定义Dialog实现各种风格的对话框效果(7)
2023-11-18 14:26:37