引入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发送邮件(含附件)的更多相关文章

  1. SpringBoot 发送邮件和附件

    作者:yizhiwaz 链接:www.jianshu.com/p/5eb000544dd7 源码:https://github.com/yizhiwazi/springboot-socks 其他文章: ...

  2. springboot 发送邮件+模板+附件

    package com.example.demo; import org.junit.Test;import org.junit.runner.RunWith;import org.springfra ...

  3. C# 发送电子邮件(含附件)用到的类 system.web.mail

    主要是用到了System.Web.Mail命名空间,用到了此空间的三个类,分别是: ●MailMessage类,用于构造电子邮件●MailAttachment类,用于构造电子邮件附件●SmtpMail ...

  4. java邮件发送(含附件)

    1. [代码]java邮件发送(含附件)疯狂的IT人站长整理的:利用Java发送邮件(含附件)的例子:1.邮件发送的配置propertity文件内容如下:(utils.properties文件放在sr ...

  5. SpringBoot 发送邮件功能实现

    背景 有个小伙伴问我你以前发邮件功能怎么弄的.然后我就给他找了个demo,正好在此也写一下,分享给大家. 理清痛点 发送邮件,大家可以想一下,坑的地方在哪? 我觉得是三个吧. 第一:邮件白名单问题. ...

  6. 1.使用javax.mail, spring的JavaMailSender,springboot发送邮件

    一.java发邮件 电子邮件服务器:这些邮件服务器就类似于邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中,按功能划分有两种类型 SMTP邮件服务器:用户替用户发送邮件和接 ...

  7. 记录一次简单的springboot发送邮件功能

    场景:经常在我们系统中有通过邮件功能找回密码,或者发送生日祝福等功能,今天记录下springboot发送邮件的简单功能 1.引入maven <!-- 邮件开发--><dependen ...

  8. springboot发送邮件,以及携带邮件附件简单使用

    可以通过springboot官方文档中Sending Email,找到类似如下java mail的使用文档 https://docs.spring.io/spring/docs/5.1.9.RELEA ...

  9. 【python】发送邮件,含附件

    def send_mail(_user,_pwd,_to): # f = open(file_new,'rb') # mail_body = f.read() # f.close() # 读取最新测试 ...

随机推荐

  1. Codeforces Gym 101175F - Machine Works(CDQ 分治维护斜率优化)

    题面传送门 首先很明显我们会按照 \(d_i\) 的顺序从小到大买这些机器,故不管三七二十一先将所有机器按 \(d_i\) 从小到大排序. 考虑 \(dp\),\(dp_i\) 表示在时刻 \(d_i ...

  2. [R] 保存pheatmap图片对象到文件

    一般我们使用pheatmap通过Rstudio交互得到的图片在plots的Export导出即可,如何保存对象到文件呢?这个需求在自动化流程中很常见,作者似乎也没说明. 生成示例数据: test = m ...

  3. 2015百度之星之-IP聚合

    IP聚合  Accepts: 138  Submissions: 293  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 6553 ...

  4. 63. Binary Tree Level Order Traversal II

    Binary Tree Level Order Traversal II My Submissions QuestionEditorial Solution Total Accepted: 79742 ...

  5. linux系统中安装JDK

    安装之前的准备工作 查看系统中之前安装好的JDK java –version rpm -qa | grep java 卸载JDK (以java-1.7.0-openjdk-1.7.0.45-2.4.3 ...

  6. RTSP, RTP, RTCP, RTMP傻傻分不清?

    RTSP基于TCP传输请求和响应报文,RTP基于UDP传输流媒体数据,RTCP基于UDP传送传输质量信息(如丢包和延迟). 比如喀什一个局域网内10个人同时点播广州的同一个源,喀什和广州之间就要传10 ...

  7. Oracle—merge into语法

    oracle的merge into语法,在这种情况下: 基于某些字段,存在就更新,不存在就插入: 不需要先去判断一下记录是否存在,直接使用merge into merge into 语法: MERGE ...

  8. 复制virtualbox虚拟硬盘

    D:\VirtualBox\VBoxManage.exe clonevdi F:\virtualbox\rac1\rac1.vdi F:\virtualbox\rac2\rac2.vdi 虚拟机软件安 ...

  9. PS只能各个工具使用的注意知识点

    1.图章工具  <仿制图章工具>使用方法:按住alt点击吸取干净的地方,然后松开alt键,按住鼠标左键拖动或左击  擦拭 图章区域放大缩小,是按住alt键+鼠标右键左右滑动 当图片中多个图 ...

  10. Python实战之MySQL数据库操作

    1. 要想使Python可以操作MySQL数据库,首先需要安装MySQL-python包,在CentOS上可以使用一下命令来安装 $ sudo yum install MySQL-python 2. ...