代码地址:https://github.com/huiyiwu/spring-boot-simple/spring-boot-email

Spring Framework提供了使用JavaMailSender接口发送电子邮件的简单抽象,Spring Boot为其提供了自动配置以及启动器模块spring-boot-starter-mail

文章目录

  • 1. 添加依赖
  • 2. email配置
  • 3. 发送邮件
  • 4. 测试
  • 5. `AuthenticationFailedException: 535 Error: authentication failed`

1. 添加依赖

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

2. email配置

spring:mail:host: smtp.163.comusername: xxxxxxxxx@163.compassword: xxxxxxxxx //此处为165邮箱的客户端授权码default-encoding: utf-8

3. 发送邮件

EmailController.java

//引入bean,如果yml配置文件中未配置,此处会报not autowire@ResourceJavaMailSender mailSender;//发送基本消息
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom("xxxxxxxx@163.com");
mailMessage.setTo("xxxxxxxx@qq.com");
mailMessage.setSubject("发送测试邮件");
mailMessage.setText("此邮件由Java动态发送");
mailSender.send(mailMessage);//发送带附件的邮件
MimeMessage mailMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mailMessage,true);
helper.setFrom("xxxxxxxx@163.com");
helper.setTo("xxxxxxxx@qq.com");
helper.setSubject("发送测试邮件");
helper.setText("此邮件由Java动态发送,并带有附件");
FileSystemResource fileSystemResource = new FileSystemResource(new File("文件绝对路径"));
helper.addAttachment("img.jpg",fileSystemResource);
mailSender.send(mailMessage);//将资源文件嵌入到html中发送
MimeMessage mailMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mailMessage,true);
helper.setFrom("xxxxxxxx@163.com");
helper.setTo("xxxxxxxxx@qq.com");
helper.setSubject("发送测试邮件");
//cid:后的值必须与addInline中的key一致
helper.setText("<html><body><img src=\"cid:img\" ></body></html>", true);
FileSystemResource fileSystemResource = new FileSystemResource(new File("文件绝对路径"));
//key值需与cid:后的值一致
helper.addInline("img",fileSystemResource);
mailSender.send(mailMessage);

4. 测试

在浏览器中输入http://localhost:8080/send?type=[]ype为0时发送基本信息邮件;为1时发送附件邮件;为2时发送嵌入到html的邮件);
结果如图:

5. AuthenticationFailedException: 535 Error: authentication failed

错误出现原因:配置文件中的密码使用的不是客户端授权code
错误解决方案:
1、登入163邮箱进入设置界面,选中

2. 如果
IMAP/SMTP服务POP3/SMTP服务是已开启状态,先关闭,后重新开启


发送后会获取到客户端授权code,使用此code用作代码中的password后成功。

Spring Boot—13、发送电子邮件相关推荐

  1. Spring Boot定时发送短信

    Spring Boot定时发送短信的两种方式 不少项目中估计都有遇到定时发送这个梗,我也遇到了,页面中下拉框选项有立即发送以及定时发送,立即发送就不用说了,定时发送可以讲一下,定时的方式有很多种,Ja ...

  2. spring boot 实现发送邮箱验证码

    首先设置一下发件人邮箱,以QQ邮箱为例: 找到帐户,开启POP3/SMTP服务 然后会提醒你怎么去实现,验证完后,会给你一个授权码,记住这个授权码,后端spring boot 会用到 下面回到IDEA ...

  3. spring boot mail 发送 设置代理服务器

    背景: 公司使用spring cloud 微服务  docker + Rancher + drone + maven 自动化部署. 网络环境 内网环境内部微服务必须通过代理服务器对外访问.邮件发送 必 ...

  4. spring smtp_使用Spring使用Java发送电子邮件– GMail SMTP服务器示例

    spring smtp 对于使用Java发送电子邮件, JavaMail API是标准解决方案. 如官方网页所述," JavaMail API提供了独立于平台和协议的框架来构建邮件和消息传递 ...

  5. 使用Spring使用Java发送电子邮件– GMail SMTP服务器示例

    对于使用Java发送电子邮件, JavaMail API是标准解决方案. 如官方网页所述," JavaMail API提供了独立于平台和协议的框架来构建邮件和消息传递应用程序". ...

  6. Spring Boot笔记-发送消息给RabbitMQ

    目录 基本概念 代码及演示 基本概念 RabbitMQ 消息中间件是在消息的传输过程中保存消息的容器.消息中间件充当中间人的作用将源消息发送到目标消息. 队列的主要目的是提供路由并保证消息的传递:如果 ...

  7. 实现Spring Boot 定时发送带附件邮件功能

    文章目录 版本说明: 1.pom依赖 2.配置 3.通过EasyExcel 将数据导出为Excel 4.发送邮件 5.定时功能 6.常用邮箱的服务器(SMTP/POP3)地址和端口总结 版本说明: s ...

  8. Spring Boot实现发送QQ邮件

    简述 在日常工作开发中,项目中会使用到发送邮件功能,通过邮件实时通知,实现告警或预警功能,首先介绍以下与发送接受邮件相关的一些协议: 发送邮件:SMPT.MIME,是一种基于"推" ...

  9. Spring Boot笔记-发送纯字符串邮件及带附件邮件

    首先引入Maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId& ...

最新文章

  1. 易观的大数据中台之路
  2. 分析apply,call方法
  3. Java盗刷_一个依赖搞定 Spring Boot 反爬虫,防止接口盗刷!
  4. 用CFree写的Windows SDK 画线程序
  5. 互联网1分钟 |0103
  6. 去除U盘插入后自动弹框的问题
  7. 201621123021《JAVA程序设计》第五周学习总结
  8. Codeforces Round #324 (Div. 2) B. Kolya and Tanya 快速幂
  9. 英雄互娱:中止代理的《NBA LIVE》在中国大陆地区所有推广活动
  10. TCP系列51—拥塞控制—14、TLP、ER与拥塞控制
  11. 【Qt教程】3.5 - Qt5 QPainter绘图抗锯齿、相对坐标/平移坐标系、QPainter画图片、手动调用QPainter绘图事件
  12. 时间选择插件jquery.timepickr
  13. 问题驱动,提出问题,发现问题,解决问题
  14. 自动弹出 微信授权登录窗口
  15. 裸金属服务器能降级虚拟机不,裸金属服务器属于虚拟机吗
  16. 路由器接口配置与管理——6
  17. 一条 SQL 语句是如何执行的
  18. 服务器装win7无限重启吗,win7系统重装系统后无限重启电脑的解决方法
  19. Transfer Learning Toolkit (TLT) + DeepStream (DS)快速部署深度学习模型(以口罩检测为例)
  20. UI设计存在什么意义?

热门文章

  1. 第六章函数,编写一个判断水仙花数的函数,从主函数输入正整数n,在主函数中调用判断水仙花数的函数,找出n以内所有的水仙花数。(水仙花数指3位数的各个数字的立方和等于这个三位数本身)。
  2. 《三体》丨从不许接触数据库到宇宙广播,红岸基地做错了什么?
  3. 大金空调HBS协议破解
  4. Okidoki - Beta阶段项目展示 - TEAM LESS ERROR
  5. python读二进制 float_Python 二进制读文件 转换 float 失败
  6. 基于javaweb在线考勤系统
  7. CASS10.1.6更新说明,支持AutoCAD2019、2020平台了
  8. linux sort -k
  9. spring boot 使用redis作为cache 出现:A cannot be cast to A.使用fastJson序列化
  10. GIT代码管理-SourceTree工具