Spring Boot—13、发送电子邮件
代码地址: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、发送电子邮件相关推荐
- Spring Boot定时发送短信
Spring Boot定时发送短信的两种方式 不少项目中估计都有遇到定时发送这个梗,我也遇到了,页面中下拉框选项有立即发送以及定时发送,立即发送就不用说了,定时发送可以讲一下,定时的方式有很多种,Ja ...
- spring boot 实现发送邮箱验证码
首先设置一下发件人邮箱,以QQ邮箱为例: 找到帐户,开启POP3/SMTP服务 然后会提醒你怎么去实现,验证完后,会给你一个授权码,记住这个授权码,后端spring boot 会用到 下面回到IDEA ...
- spring boot mail 发送 设置代理服务器
背景: 公司使用spring cloud 微服务 docker + Rancher + drone + maven 自动化部署. 网络环境 内网环境内部微服务必须通过代理服务器对外访问.邮件发送 必 ...
- spring smtp_使用Spring使用Java发送电子邮件– GMail SMTP服务器示例
spring smtp 对于使用Java发送电子邮件, JavaMail API是标准解决方案. 如官方网页所述," JavaMail API提供了独立于平台和协议的框架来构建邮件和消息传递 ...
- 使用Spring使用Java发送电子邮件– GMail SMTP服务器示例
对于使用Java发送电子邮件, JavaMail API是标准解决方案. 如官方网页所述," JavaMail API提供了独立于平台和协议的框架来构建邮件和消息传递应用程序". ...
- Spring Boot笔记-发送消息给RabbitMQ
目录 基本概念 代码及演示 基本概念 RabbitMQ 消息中间件是在消息的传输过程中保存消息的容器.消息中间件充当中间人的作用将源消息发送到目标消息. 队列的主要目的是提供路由并保证消息的传递:如果 ...
- 实现Spring Boot 定时发送带附件邮件功能
文章目录 版本说明: 1.pom依赖 2.配置 3.通过EasyExcel 将数据导出为Excel 4.发送邮件 5.定时功能 6.常用邮箱的服务器(SMTP/POP3)地址和端口总结 版本说明: s ...
- Spring Boot实现发送QQ邮件
简述 在日常工作开发中,项目中会使用到发送邮件功能,通过邮件实时通知,实现告警或预警功能,首先介绍以下与发送接受邮件相关的一些协议: 发送邮件:SMPT.MIME,是一种基于"推" ...
- Spring Boot笔记-发送纯字符串邮件及带附件邮件
首先引入Maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId& ...
最新文章
- 易观的大数据中台之路
- 分析apply,call方法
- Java盗刷_一个依赖搞定 Spring Boot 反爬虫,防止接口盗刷!
- 用CFree写的Windows SDK 画线程序
- 互联网1分钟 |0103
- 去除U盘插入后自动弹框的问题
- 201621123021《JAVA程序设计》第五周学习总结
- Codeforces Round #324 (Div. 2) B. Kolya and Tanya 快速幂
- 英雄互娱:中止代理的《NBA LIVE》在中国大陆地区所有推广活动
- TCP系列51—拥塞控制—14、TLP、ER与拥塞控制
- 【Qt教程】3.5 - Qt5 QPainter绘图抗锯齿、相对坐标/平移坐标系、QPainter画图片、手动调用QPainter绘图事件
- 时间选择插件jquery.timepickr
- 问题驱动,提出问题,发现问题,解决问题
- 自动弹出 微信授权登录窗口
- 裸金属服务器能降级虚拟机不,裸金属服务器属于虚拟机吗
- 路由器接口配置与管理——6
- 一条 SQL 语句是如何执行的
- 服务器装win7无限重启吗,win7系统重装系统后无限重启电脑的解决方法
- Transfer Learning Toolkit (TLT) + DeepStream (DS)快速部署深度学习模型(以口罩检测为例)
- UI设计存在什么意义?
热门文章
- 第六章函数,编写一个判断水仙花数的函数,从主函数输入正整数n,在主函数中调用判断水仙花数的函数,找出n以内所有的水仙花数。(水仙花数指3位数的各个数字的立方和等于这个三位数本身)。
- 《三体》丨从不许接触数据库到宇宙广播,红岸基地做错了什么?
- 大金空调HBS协议破解
- Okidoki - Beta阶段项目展示 - TEAM LESS ERROR
- python读二进制 float_Python 二进制读文件 转换 float 失败
- 基于javaweb在线考勤系统
- CASS10.1.6更新说明,支持AutoCAD2019、2020平台了
- linux sort -k
- spring boot 使用redis作为cache 出现:A cannot be cast to A.使用fastJson序列化
- GIT代码管理-SourceTree工具