1.引入jar包

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

2.application.properties配置邮件相关信息

spring.mail.default-encoding=UTF-8
spring.mail.host=smtp.qq.com
spring.mail.username=1xxxxxxx6@qq.com
spring.mail.password=cwxxxxxxxxxj
spring.mail.test-connection=true
# 126邮箱SMTP服务器地址:smtp.126.com,端口号:465或者994
# 2163邮箱SMTP服务器地址:smtp.163.com,端口号:465或者994
# yeah邮箱SMTP服务器地址:smtp.yeah.net,端口号:465或者994
# qq邮箱SMTP服务器地址:smtp.qq.com,端口号465或587*
spring.mail.port=587
spring.mail.properties.mail.smtp.socketFactoryClass=javax.net.ssl.SSLSocketFactory
# 表示开启debug模式,邮件发送过程的日志会在控制台打印出来,方便排查问题
spring.mail.properties.mail.debug=true

注意:这里以qq邮箱为主,密码获取通过qq邮箱->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->开启服务->POP3/SMTP服务->开启->通过短信发送获取密码,如下图。

3.封装邮件发送代码如下,可以使用测试类或者controller层接口调用,这里以测试类为主。

package com.example.demo.service;import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import javax.mail.internet.MimeMessage;
import java.io.File;/*** MailService** @Description*/
@Service
public class MailService {@Resourceprivate JavaMailSender javaMailSender;/*** 发送简单邮件* @param subject 邮件主题* @param content 邮件内容* @param to      收件人* @param from    发件人* @param cc  抄送人,多个逗号分隔* @param bcc 密送人,多个逗号分隔*/public void sendSimpleMail(String subject, String content, String to, String from,String cc,String bcc) {SimpleMailMessage message = new SimpleMailMessage();message.setSubject(subject);message.setText(content);message.setTo(to);if(StringUtils.isNotBlank(cc)){message.setCc(cc.split(","));}if(StringUtils.isNotBlank(bcc)){message.setBcc(bcc.split(","));}message.setFrom(from);javaMailSender.send(message);}/*** 发送带附件邮件* @param subject 邮件主题* @param content 邮件内容* @param to  收件人* @param from  发件人* @param cc  抄送人,可以有多个* @param bcc 密送人,可以有多个* @param attachmentPath 附件路径*/public void sendAttachmentMail(String subject, String content, String to, String from,String cc,String bcc,String attachmentPath) {MimeMessage mimeMessage = javaMailSender.createMimeMessage();try {MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");message.setSubject(subject);//第2个参数默认为false,若设为true时,邮件内容需要使用html文本message.setText(content,false);message.setTo(to);if(StringUtils.isNotBlank(cc)){message.setCc(cc.split(","));}if(StringUtils.isNotBlank(bcc)){message.setBcc(bcc.split(","));}message.setFrom(from);if(StringUtils.isNotBlank(attachmentPath)){File file = new File(attachmentPath);message.addAttachment(file.getName(),file);}javaMailSender.send(mimeMessage);} catch (Exception e) {e.printStackTrace();}}}

4.通过测试类进行测试

package com.example.demo;import com.example.demo.service.MailService;
import org.junit.jupiter.api.Test;import javax.annotation.Resource;/*** MailServiceTest** @Description*/
@SpringBootTest
public class MailServiceTest {@ResourceMailService mailService;@Testpublic void sendSimpleMail_test() {String subject = "测试我的代码-邮件功能";String content = "疫情防护,人人有责。";String to = "5xxxxx5@qq.com";String from = "1xxxxxx6@qq.com";String cc = "1xxxxxx4@qq.com,";String bcc = "1xxxx4@qq.com,7xxxxxx1@qq.com,1xxxxxx2@qq.com";mailService.sendSimpleMail(subject, content, to, from, cc, bcc);}@Testpublic void sendAttachmentMail_test() {String subject = "测试我的代码-邮件功能";String content = "哈哈,给你们分享一本书";String to = "5xxxxx5@qq.com";String from = "1xxxx6@qq.com";String cc = "1xxxx74@qq.com,";String bcc = "1xxxxx4@qq.com,7xxxxxx1@qq.com,1xxxxxxxx2@qq.com";String attachmentPath = "D:\\sxxxxdy\\xxx\\xxx\\路xxxx传.pdf";mailService.sendAttachmentMail(subject, content, to, from, cc, bcc,attachmentPath);}}

springboot中的邮件功能相关推荐

  1. 利用word2010中的“邮件”功能批量发送邀请函

    在日常办公中,无论是销售部.行政人力部.市场部都会涉及到一项工作,那就是群发邀请函或者通知.公告等公文.我们可能会发送电子邀请函,也可能需要我们打印纸质邀请函,也会遇到打印大量的客户通信地址用来派发礼 ...

  2. python读取邮箱邮件_Python实现读取邮箱中的邮件功能示例【含文本及附件】

    本文实例讲述了Python实现读取邮箱中的邮件功能.分享给大家供大家参考,具体如下: #-*- encoding: utf-8 -*- import sys import locale import ...

  3. 在SpringBoot中添加发送邮件功能

    1.第一步首先引入坐标 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter- ...

  4. SpringBoot 中 starts ---场景启动器

    普通 maven 项目: 以前我们的项目的引入某些功能,该功能有大量的依赖,此时我们需要手动的 一个个在 pom.xml 文件中引入. 这种大量的依赖关系,需要我们手动管理和维护.比较麻烦!! Spr ...

  5. 在 Lotus Notes 中设置邮件定时发送的方法及代理功能介绍

    孙 茂伟, 测试工程师, IBM 孙茂伟在北京科技大学获得工学学士.工学硕士学位,现于 IBM CDL ECM FileNet EForms TEAM 从事自动化测试相关工作. 简介: 本文将向广大 ...

  6. SAP中的邮件发送功能

    在SAP中我们可以设置装备摆设STMP邮件功能,可以经由过程SOST来查磕暌故件状况,在编码中可用FM SO_DOCUMENT_SEND_API1 .SO_NEW_DOCUMENT_ATT_SEND_ ...

  7. SpringBoot中如何灵活的实现接口数据的加解密功能?

    数据是企业的第四张名片,企业级开发中少不了数据的加密传输,所以本文介绍下SpringBoot中接口数据加密.解密的方式. 本文目录 一.加密方案介绍二.实现原理三.实战四.测试五.踩到的坑 一.加密方 ...

  8. OutLook 2010 (Bata) 中的邮件导出功能

    2010年4月22日,MSDN 用户可以通过订阅下载正式版本的Office 2010.首发语言中包括简体中文版.其中产品包括:Office 2010 Professional Plus,Project ...

  9. springboot中的各个模块及其功能

    springboot中的各个模块及其功能:

最新文章

  1. 【PAT乙级】1064 朋友数 (20 分)
  2. leetcode -- Balanced Binary Tree TODO
  3. (2)MongoDB副本集自动故障转移原理(含客户端)
  4. sharepoint被阻止的文件类型解释说明
  5. 喂,你经历过两三年前的前端开发吗?
  6. Tips/Tricks#3:利用JavaScript选择GridView行
  7. 查看mysql创建 数据库_Mysql创建数据库和查看数据库
  8. 从点击一个链接到浏览器显示页面,这个过程中发生了什么?
  9. CausalImpact
  10. FSR402电阻式薄膜压力传感器
  11. python爬取网页数据总结_python之爬取网页数据总结(一)
  12. python 12306查询不到车次_(经典!!!详细解析!!!)python实现12306余票查询
  13. 网易2011笔试题详解
  14. 第十二章 软件壳(四)(代码抽取型壳)
  15. Web前端是什么?主要是干什么的
  16. jasper翻译_Jasper为什么成为了Max的小翻译 孩子要从小学习双语吗
  17. 好几张图片合成一个PDF,不能错过的小技巧!
  18. java线程调度模型
  19. erlang rebar 配置mysql_Erlang打包工具rebar安装使用
  20. 如何仅通过IP地址访问数据决策系统

热门文章

  1. 学校电子阅览室云桌面的应用
  2. 跃迁:成为高手的技术
  3. 江苏大学CSDN高校俱乐部“信息安全基础架构“讲座
  4. mysql cte_mysql 8.0 CTE 介绍
  5. 在Windows server 2008 R2上创建AD域控制器
  6. 收发一体超声波测距离传感器模块_大禹电子教你如何区别超声波传感器、超声波探头和超声波换能器...
  7. 第五届“泰迪杯”数据分析技能赛
  8. 南京印象之新街口地铁站
  9. python中range(30)什么意思_range在python中是什么意思
  10. 【研究型论文】结合多特征识别的恶意加密流量检测方法(中文论文_信息安全学报)