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
  • asp之家 软件编程 m.aspxhome.com