使用spring-boot-starter-mail发送邮件,HTML,附件
前言
这里使用的是spring-boot-starter-mail,
当然了,你也可以使用com.sun.mail(javax.mail),Hutool对这个进行了封装,
但是我的项目是springboot3,javax改为了jakarta,导致我无法使用Hutool封装的(在我写这篇文章时)
所以,自己写咯,既然自己写,那就用springboot提供的mail包咯
POM依赖
<!-- 邮件收发 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
完整的测试类
package cn.daenx.myadmin;
import jakarta.mail.internet.MimeMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
/**
* 使用spring-boot-starter-mail发送邮件
*
* @author DaenMax
*/
public class testSend {
public static void main(String[] args) {
// String toEmail = "1330166565@qq.com,wangjingen163@163.com";
String toEmail = "1330166565@qq.com";
//发送普通文字邮件,不带附件
// Boolean aBoolean = sendEmail(toEmail, "测试阿萨德", "测试邮件111", false, null);
//发送HTML邮件,不带附件
// Boolean aBoolean = sendEmail(toEmail, "测试HHHH", "<h1>分手吧</h1>", true, null);
//发送HTML邮件,带附件
List<File> list = new ArrayList<>();
File file1 = new File("C:\\Users\\13301\\Desktop\\接口测试.e");
File file2 = new File("C:\\Users\\13301\\Desktop\\1.txt");
list.add(file1);
list.add(file2);
Boolean aBoolean = sendEmail(toEmail, "测试LLLL", "<h1>分手吧</h1>", true, list);
System.out.println("发送邮件结果:" + aBoolean);
}
/**
* 发送邮件
* 按照系统邮箱配置的使用模式进行选择邮箱号
*
* @param toEmail 多个用,隔开
* @param subject
* @param content
* @param isHtml 是否是HTML
* @param fileList 附件内容,留空则无
* @return
*/
public static Boolean sendEmail(String toEmail, String subject, String content, Boolean isHtml, List<File> fileList) {
JavaMailSenderImpl javaMailSender = getJavaMailSenderImpl();
//以下两种写法都可以
// String from = "1330166564@qq.com";
String from = "MyAdmin<1330166564@qq.com>";
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper;
mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setTo(toEmail.split(","));
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(content, isHtml);
if (fileList != null) {
for (File file : fileList) {
mimeMessageHelper.addAttachment(file.getName(), file);
}
}
javaMailSender.send(mimeMessage);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public static JavaMailSenderImpl getJavaMailSenderImpl() {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost("smtp.qq.com");
javaMailSender.setUsername("5201314@qq.com");
javaMailSender.setPassword("ewduxxxxxxxhgd");
javaMailSender.setPort(587);
javaMailSender.setDefaultEncoding("UTF-8");
javaMailSender.setProtocol(JavaMailSenderImpl.DEFAULT_PROTOCOL);
Properties properties = new Properties();
properties.setProperty("mail.smtp.timeout", "25000");
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.socketFactoryClass", "javax.net.ssl.SSLSocketFactory");
javaMailSender.setJavaMailProperties(properties);
return javaMailSender;
}
}
最简单的文字邮件,测试类
package cn.daenx.myadmin;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import java.util.Properties;
public class testSend {
public static void main(String[] args) {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost("smtp.qq.com");
javaMailSender.setUsername("5201314@qq.com");
javaMailSender.setPassword("ewduxxxxxxxhgd");
javaMailSender.setPort(587);
javaMailSender.setDefaultEncoding("UTF-8");
javaMailSender.setProtocol(JavaMailSenderImpl.DEFAULT_PROTOCOL);
Properties properties = new Properties();
properties.setProperty("mail.smtp.timeout", "25000");
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.socketFactoryClass", "javax.net.ssl.SSLSocketFactory");
javaMailSender.setJavaMailProperties(properties);
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("测试发送邮件3");
//message.setFrom("5201314@qq.com");
message.setFrom("MyAdmin<5201314@qq.com>");
String toEmail = "1330166565@qq.com,testwy@163.com";
message.setTo(toEmail.split(","));
message.setText("这是一封测试邮件,收到即为正常");
javaMailSender.send(message);
}
}
使用spring-boot-starter-mail发送邮件,HTML,附件的更多相关文章
- Spring Boot Starter 介绍
http://www.baeldung.com/spring-boot-starters 作者:baeldung 译者:http://oopsguy.com 1.概述 依赖管理是任何复杂项目的关键部分 ...
- spring boot使用常规发送邮件
spring boot使用常规发送邮件 1.pom.xml文件依赖: <!-- javax.mail begin--> <dependency> <groupId> ...
- spring -boot s-tarter 详解
Starter POMs是可以包含到应用中的一个方便的依赖关系描述符集合.你可以获取所有Spring及相关技术的一站式服务,而不需要翻阅示例代码,拷贝粘贴大量的依赖描述符.例如,如果你想使用Sprin ...
- SpringBoot 之Spring Boot Starter依赖包及作用
Spring Boot 之Spring Boot Starter依赖包及作用 spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. spri ...
- Spring Boot Starter列表
转自:http://blog.sina.com.cn/s/blog_798f713f0102wiy5.html Spring Boot Starter 基本的一共有43种,具体如下: 1)spring ...
- Spring Boot (一): Spring Boot starter自定义
前些日子在公司接触了spring boot和spring cloud,有感于其大大简化了spring的配置过程,十分方便使用者快速构建项目,而且拥有丰富的starter供开发者使用.但是由于其自动化配 ...
- Spring boot starter pom的依赖关系说明
Spring Boot 通过starter依赖为项目的依赖管理提供帮助.starter依赖起始就是特殊的maven依赖,利用了传递依赖解析,把常用库聚合在一起,组成了几个为特定功能而定制的依赖. sp ...
- 创建自己的Spring Boot Starter
抽取通用模块作为项目的一个spring boot starter.可参照mybatis的写法. IDEA创建Empty Project并添加如下2个module,一个基本maven模块,另一个引入sp ...
- 自己写spring boot starter
自己写spring boot starter 学习了:<spring boot实战>汪云飞著 6.5.4节 pom.xml <project xmlns="http://m ...
- 自定义的Spring Boot starter如何设置自动配置注解
本文首发于个人网站: 在Spring Boot实战之定制自己的starter一文最后提到,触发Spring Boot的配置过程有两种方法: spring.factories:由Spring Boot触 ...
随机推荐
- 解决 /usr/bin/env: php: No such file or directory 问题
前言 composer 报错 env: php: No such file or directory 找不到 php 的执行文件,原因是脚本文件 env 会通过 $PATH 所指定的路径去寻找 php ...
- Docker 运行命令
停止所有的容器 docker stop $(docker ps -aq) 启动所有的容器 docker start $(docker ps -aq) 停止容器 docker stop <容器Na ...
- openssl基础使用(密码学 linux)
目录 实验原理 实验过程 一.对称加密 1.使用rc4加解密 2.使用AES加解密 ...
- 响应式编程之Project Reactor
Project Reactor作为响应式编程范式的核心实现框架,严格遵循Reactive Streams规范体系,其架构设计完整包含了规范定义的四个核心组件:Publisher(数据源).Subscr ...
- 探秘Transformer系列之(18)--- FlashAttention
探秘Transformer系列之(18)--- FlashAttention 目录 0x00 概述 0.1 问题 0.2 其它解决方案 0.3 Flash Attention 0x01 背景知识 1. ...
- Sql语句:数据操作
数据操作,核心是:增删改查. 其中查与增删改不同,要返回数据集,其他的只要知道是否修改成功即可,所以一般调用时,返回值不同,这点要注意. 一.查询: select sname,sdept,sage f ...
- SSL测试证书
1. tomcat 1.1 生成 keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore -validity 365 过 ...
- IDEA target中没有class文件/target中有class没有yml文件/yml文件不显示叶子
target中没有class文件.表现为文件显示红波浪线,但是点进去自己又好了,但是编译会说找不到.点进入target文件夹发现没有class文件,只有yml文件或者什么都没有 解决方法:rebuil ...
- spring项目使用EMQX,使用@Autowired注入失败报错空指针问题记录
目录 java客户端使用MQTT订阅消息大致流程 MQTTConnect部分代码 MQTTListener部分代码 问题分析 问题原因 解决方法 总结 参考 java客户端使用MQTT订阅消息大致流程 ...
- yolov5常用命令记录
一.准备深度学习环境 首先,确保你的计算机上已经安装了Python.PyTorch以及CUDA等必要的深度学习框架和库.YOLOv5对Python版本和PyTorch版本有一定的要求,通常建议使用Py ...