springboot发送邮件(含附件)
引入maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
yml配置
spring:
mail:
host: smtp.163.com #邮件服务器地址,邮箱不一样,服务器地址不一样
username: #邮箱用户名
password: #一般使用授权码
properties:
'mail.smtp.ssl.enable': 'true' #设置安全连接
邮件发送附件实体类
MailAttachmentDto.java
import lombok.Data;
import lombok.experimental.Accessors; @Data
@Accessors(chain = true)
public class MailAttachmentDto { /**
* 附件文件名
*/
private String fileName; /**
* 附件路径(绝对路径)
*/
private String filePath;
}
邮件发送实体
MailDto.java
import lombok.Data;
import lombok.experimental.Accessors; import java.util.List; @Data
@Accessors(chain = true)
public class MailDto { /**
* 主题
*/
private String subject; /**
* 邮件内容
*/
private String text; /**
* 收件人邮箱地址(发送给谁)
*/
private String to; /**
* 发送人(谁发的)
*/
private String from; /**
* 附件列表
*/
private List<MailAttachmentDto> attachmentDtoList;
}
发送邮件工具类
MailUtis.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import javax.annotation.PostConstruct;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.List; @Component
public class MailUtil { @Autowired
private JavaMailSenderImpl javaMailSender; public static MailUtil mailUtil; @PostConstruct
public void init() {
mailUtil = this;
mailUtil.javaMailSender = this.javaMailSender;
} /**
* 发送邮件(含有附件)
*/
public static void sendMail(MailDto mailDto) throws MessagingException {
MimeMessage mimeMessage = mailUtil.javaMailSender.createMimeMessage();
MimeMessageHelper helper = null;
helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject(mailDto.getSubject());
helper.setText(mailDto.getText());
//发送含有html代码的内容
//helper.setText(mailDto.getText(), true);
helper.setTo(mailDto.getTo());
helper.setFrom(mailDto.getFrom()); if (!CollectionUtils.isEmpty(mailDto.getAttachmentDtoList())) {
List<MailAttachmentDto> attachmentDtoList = mailDto.getAttachmentDtoList();
for (MailAttachmentDto attachmentDto : attachmentDtoList) { helper.addAttachment(attachmentDto.getFileName(), new File(attachmentDto.getFilePath()));
}
} mailUtil.javaMailSender.send(mimeMessage);
}
}
使用
/**
* 发送邮件 测试
* @return
*/
@PostMapping(value = "/sendMail")
public String sendMail(){
MailDto dto=new MailDto();
dto.setSubject("测试邮件主题")
.setText("我是测试邮件具体内容")
.setTo("223@qq.com")
.setFrom("我是发送人"); List<MailAttachmentDto> attachmentDtoList=new LinkedList<>();
MailAttachmentDto attachmentDto=new MailAttachmentDto();
attachmentDto.setFileName("1.jpg")
.setFilePath("C:\\Users\\Pictures\\1.jpg");
dto.setAttachmentDtoList(attachmentDtoList);
try {
MailUtil.sendMail(dto);
return "success";
} catch (MessagingException e) {
e.printStackTrace();
return "error";
} }
springboot发送邮件(含附件)的更多相关文章
- SpringBoot 发送邮件和附件
作者:yizhiwaz 链接:www.jianshu.com/p/5eb000544dd7 源码:https://github.com/yizhiwazi/springboot-socks 其他文章: ...
- springboot 发送邮件+模板+附件
package com.example.demo; import org.junit.Test;import org.junit.runner.RunWith;import org.springfra ...
- C# 发送电子邮件(含附件)用到的类 system.web.mail
主要是用到了System.Web.Mail命名空间,用到了此空间的三个类,分别是: ●MailMessage类,用于构造电子邮件●MailAttachment类,用于构造电子邮件附件●SmtpMail ...
- java邮件发送(含附件)
1. [代码]java邮件发送(含附件)疯狂的IT人站长整理的:利用Java发送邮件(含附件)的例子:1.邮件发送的配置propertity文件内容如下:(utils.properties文件放在sr ...
- SpringBoot 发送邮件功能实现
背景 有个小伙伴问我你以前发邮件功能怎么弄的.然后我就给他找了个demo,正好在此也写一下,分享给大家. 理清痛点 发送邮件,大家可以想一下,坑的地方在哪? 我觉得是三个吧. 第一:邮件白名单问题. ...
- 1.使用javax.mail, spring的JavaMailSender,springboot发送邮件
一.java发邮件 电子邮件服务器:这些邮件服务器就类似于邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中,按功能划分有两种类型 SMTP邮件服务器:用户替用户发送邮件和接 ...
- 记录一次简单的springboot发送邮件功能
场景:经常在我们系统中有通过邮件功能找回密码,或者发送生日祝福等功能,今天记录下springboot发送邮件的简单功能 1.引入maven <!-- 邮件开发--><dependen ...
- springboot发送邮件,以及携带邮件附件简单使用
可以通过springboot官方文档中Sending Email,找到类似如下java mail的使用文档 https://docs.spring.io/spring/docs/5.1.9.RELEA ...
- 【python】发送邮件,含附件
def send_mail(_user,_pwd,_to): # f = open(file_new,'rb') # mail_body = f.read() # f.close() # 读取最新测试 ...
随机推荐
- 洛谷 P3215 [HNOI2011]括号修复 / [JSOI2011]括号序列(fhq-treap)
题目链接 题意:有一个长度为 \(n\) 的括号序列,你需要支持以下操作: 将 \([l,r]\) 中所有括号变为 \(c\) 将 \([l,r]\) 区间翻转 将 \([l,r]\) 区间中左括号变 ...
- AT3945 [ARC092D] Two Faced Edges
要求,翻转一条边,强连通分量个数是否会改变. 考虑连通分量个数会改变的因素: 即\(v\to u\)是否成立,以及翻转前,是否有一条\(u \to v\)的路径不经过该条边 以上当只有一个满足时,连通 ...
- Codeforces 840C - On the Bench(dp/容斥原理)
Codeforces 题目传送门 & 洛谷题目传送门 这是一道 *2500 的 D1C,可个人认为难度堪比某些 *2700 *2800. 不过嘛,*2500 终究还是 *2500,还是被我自己 ...
- 走向深蓝:那些 Linshey 不会的算法
网络流 树论: Algorithm Round-1 Round-2 Algorithm Round-1 Round-2 点分治 \(\checkmark\) 边分治 \(\checkmark\) 动态 ...
- R语言实战(第二版)-part 1笔记
说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...
- pycharm两个交互模式
- liveBOS环境搭建
环境搭建:1.准备jdk1.6及以上版本oracle11gplsqlsql脚本(oracle_init.sql,oracle_insert.sql)livebos_tomcatlivebos的授权文件 ...
- A Child's History of England.46
As, one hundred years before, the servile [卑躬屈膝的~serve] followers of the Court had abandoned the Con ...
- 大数据学习day21-----spark04------1. 广播变量 2. RDD中的cache 3.RDD的checkpoint方法 4. 计算学科最受欢迎老师TopN
1. 广播变量 1.1 补充知识(来源:https://blog.csdn.net/huashetianzu/article/details/7821674) 之所以存在reduce side jo ...
- ES6必知,箭头函数与普通函数的区别。
1. 箭头函数没有prototype(原型),所以箭头函数本身没有this let a = () =>{}; console.log(a.prototype); // undefined 2. ...