• pom包配置
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>
  • 配置文件
#163邮箱配置
spring.mail.host=smtp.163.com #邮箱服务器地址
spring.mail.username=xxx.163.com #用户名
spring.mail.password=ooo #开启POP3之后设置的客户端授权码
spring.mail.default-encoding=UTF-8 #编码
# 超时时间(可选)
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.writetimeout=5000#126邮箱配置
spring.mail.host=smtp.126.com
spring.mail.username=xxx.126.com
spring.mail.password=ooo #开启POP3之后设置的客户端授权码
spring.mail.default-encoding=UTF-8#qq邮箱配置
spring.mail.host=smtp.qq.com
spring.mail.username=xxx@qq.com
spring.mail.password=ooo #开启POP3之后设置的客户端授权码
spring.mail.default-encoding=UTF-8

1、这里的password不是登录密码,是开启POP3之后设置的客户端授权码
2、 默认端口25,使用465端口时,需要添加配置,如果465不能发送成功,试试587端口:

spring.mail.port=465
spring.mail.properties.mail.smtp.ssl.enable=true
  • JavaMailSender

Spring已经帮我们内置了JavaMailSender,可以直接在项目中引用

  • 简单的文本邮件
/*** MailService实现类*/
@Component
public class MailServiceImpl implements MailService {@Autowiredprivate JavaMailSender mailSender;@Value("${spring.mail.username}")private String from;@Overridepublic void sendSimpleMail(String to, String subject, String content) throws MailException {SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from); // 邮件发送者message.setTo(to); // 邮件接受者message.setSubject(subject); // 主题message.setText(content); // 内容mailSender.send(message);}
}
  • 富文本邮件

发送富文本邮件需要使用MimeMessageHelper类,MimeMessageHelper支持发送复杂邮件模板,支持文本、附件、HTML、图片等。

  • 发送带图片的邮件
@Override
public void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId) throws MessagingException {MimeMessage message = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message, true);helper.setFrom(from);helper.setTo(to);helper.setSubject(subject);helper.setText(content, true);File file = new File(rscPath);FileSystemResource res = new FileSystemResource(file);helper.addInline(rscId, res);mailSender.send(message);
}
  • 如果需要发送多张图片,可以改变传参方式,使用集合添加多个<img src='cid:rscId'>和

helper.addInline(rscId, res);即可实现

  • 单元测试:
@Test
public void test2() {String to = "xxx@163.com";String subject = "今晚要加班,不用等我了";String rscId = "img110";String content = "<html><body><img width='250px' src=\'cid:" + rscId + "\'></body></html>
}

这里使用的qq邮箱作为收件人,结果被坑惨了。刚开始收到的邮件都是破图,查看源码发现src也没有没有图片地址,回去看了一波代码,好久之后终于发现破图的原因了:qq邮箱默认把我的图片屏蔽掉了,然后在收件人下方、正文上方有一行黄色的警告,点击信任此邮箱,我的天,终于看见图片了。

  • 发送HTML邮件
@Override
public void sendHtmlMail(String to, String subject, String content) throws MessagingException {MimeMessage message = mailSender.createMimeMessage();//true 表⽰示需要创建⼀一个 multipart messageMimeMessageHelper helper = new MimeMessageHelper(message, true);helper.setFrom(from);helper.setTo(to);helper.setSubject(subject);helper.setText(content, true);mailSender.send(message);
}
  • 单元测试:
@Test
public void test() {String to = "xxx@qq.com";String subject = "猜猜我今天买了啥";String content = "<html><head></head><body><h3>哈哈,什么都没有</h3></body></html>

使用Spring Boot发送邮件相关推荐

  1. Spring Boot 发送邮件

    第一步:引入Spring Boot整合邮件的依赖 <dependency><groupId>org.springframework.boot</groupId>&l ...

  2. Spring Boot发送邮件

    1 依赖 引入spring mail的依赖: <dependency><groupId>org.springframework.boot</groupId>< ...

  3. Spring Boot 发送邮件时,出现 Mail server connection failed 异常问题

    问题描述:在使用 SpringBoot 的邮件发送组件功能,发送邮件时,本地环境能够发送成功,但部署到 腾讯云服务器后,却发送失败,报错 org.springframework.mail.MailSe ...

  4. Spring Boot 2发送邮件手把手图文教程

    本文基于:Spring Boot 2.1.3,理论支持Spring Boot 2.x所有版本. 最近有童鞋问到笔者如何用Spring Boot发送邮件,故而整理下Spring Boot发送邮件的各种姿 ...

  5. exchange邮件服务器_基于Spring Boot快速实现发送邮件功能

    邮件在项目中经常会被用到,比如用邮件发送通知.比如,通过邮件注册.认证.找回密码.系统报警通知.报表信息等.本篇文章带大家通过SpringBoot快速实现一个发送邮件的功能. 邮件协议 下面先简单了解 ...

  6. (10)Spring Boot修改端口号【从零开始学Spring Boot】

    Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port=9090 常用配置: #### ...

  7. 70.打印所有Spring boot载入的bean【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 问题的提出: 我们在开发过程当中,我们可能会碰到这样的问题:No qualifying bean  就是我们定义的bean无法进行注入,那到底是什 ...

  8. (30)导入时如何定制spring-boot依赖项的版本【转载】【从零开始学Spring Boot】...

    此文章转载地址:http://www.tuicool.com/articles/RJJvMj3 请注重作者的版权. spring-boot通过maven的依赖管理为我们写好了很多依赖项及其版本,我们可 ...

  9. 54. spring boot日志升级篇—logback【从零开始学Spring Boot】

    在<44. Spring Boot日志记录SLF4J>章节中有关相关的介绍,这里我们在深入的了解下logback框架. 为什么要使用logback ? --在开发中不建议使用System. ...

最新文章

  1. 排序算法一:选择排序
  2. linux systemd服务,systemd服务管理
  3. 链表线性表及其操作c语言代码大全,用链表实现线性表的各种操作(C语言)
  4. Flutter中实现整个App变为灰色
  5. 算法题:找出一个数组中相加值最大的连续序列元素
  6. iw命令 linux 没有_linux下ifconfig、iwconfig、iwlist命令详解
  7. tcppwebbrower 关闭安全警报_【安全常识】燃气泄漏报警器,您的安全保护神!
  8. gogs可以自动化部署吗_三千、五千平方的仓库房可以用自动化立体仓库吗?
  9. python random模块导入_Python学习笔记(二十)—模块的导入
  10. android8.0及发布时间,android 8.0什么时候发布_android 8.0发布时间_android 8.0新特性
  11. 【渝粤教育】电大中专跨境电子商务理论与实务 (30)作业 题库
  12. laravel安装指定版本
  13. 实现计算机考试和vb交换的,2012江苏省计算机二级VB试题库及答案
  14. 面试:Android数据库升级给表增加字段
  15. 解决网页内容无法复制的方法
  16. 简洁的表白java_java简短表白代码怎么写?实操讲解
  17. 银行IT系统整体架构
  18. 手机浏览器下载文件名乱码解决
  19. 2020-02-08
  20. 三款拼音输入法的特性对比

热门文章

  1. 如何更换清华源_树莓派中国软件源
  2. python遇到的问题
  3. 设计模式快速学习(五)原型模式
  4. 计网学习第一章:概述
  5. 如何在服务器上部署若依开源框架?(Linux版)
  6. ftp服务器搭建与使用
  7. [Ext JS ]3.4 数字输入框 numberfield
  8. [Ext JS]5.11 轻量版的树- treelist
  9. [码海拾贝 之Perl]获取日期以及日期的加减
  10. servlet过滤器入门