spring-boot邮件发送功能演示(163邮箱与QQ邮箱互发)
背景:使用 Spring Boot 发送邮件,演示的邮箱为 163邮箱与QQ邮箱,两者可以实现互发邮件。
问题:自己可以实现一下 QQ邮箱 发 QQ邮箱,163发163,是什么样的。
演示 :163 邮箱向 QQ 邮箱发送邮件,两者的原理是一样的,原理如下图:
一、准备邮箱阶段:
1、登陆163邮箱,然后开启 pop 协议。
2、发送短信开启 POP;
3、复制授权密码;
4、你若要是使用 QQ邮箱作为主机发送邮件的话,就得去开启 QQ 邮箱的相关协议。
二、编码测试阶段:
1、先引入spring boot 集成的邮件依赖,启动器;
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
2、我们先直接在测试类中测试一下,看看能不能通,在application.properties / yml
配置文件中配置;
#邮件相关的配置#发送邮件的账号
spring.mail.username=service_xxx@163.com
#发送邮件的授权密码,直接粘贴过来,这里不是邮箱密码
spring.mail.password=PFPCXXXCRXBBOWEV
#发送邮件的主机服务器(这是163的),若你使用的是QQ发送邮件那么就是 smtp.qq.com
spring.mail.host=smtp.163.com
#以下是开启相关的协议,比说说 SSL,不设置就会不允许发送邮件,但是不用全部开启
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
3、编写测试代码;
@Autowiredprivate JavaMailSenderImpl mailSender;@Testpublic void MailSend() {//先测试一个普通的邮件SimpleMailMessage message = new SimpleMailMessage();message.setSubject("通知:xxxx"); //邮件的标题message.setText("邮件测试!抱歉"); //邮件的内容message.setTo("2026685xxx@qq.com"); //邮件发送的目的地message.setFrom("service_xxx@163.com");//邮件发送者(非必须写)mailSender.send(message); //提交邮件发送}
4、运行这个测试方法,成功截图,假如报错,可能是协议没有开启、发送邮件的主机服务器不对(163发就写163的服务器)、代码中setFrom(“配置文件中配置的是哪一个账号就写哪一个账号发送”);
到此你已经完成了 spring-boot 邮件发送最简单的功能!下面我们来发送图片,添加附件和有 html 的邮件
复杂邮件发送:
5、重写一个测试方法,用于编写复杂邮件内容,实现添加附件和添加html;
@Testpublic void MailSend_01() throws Exception {//写一个可以添加图片、支持html的复杂邮件MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);//添加数据helper.setSubject("通知:有附件邮件"); //邮件的标题//开启 html 支持helper.setText("<br>",true); helper.setText("<h3 style = 'color:red'>邮件测试!抱歉</h3>",true);//发送接受地址设置helper.setTo("2026685xxx@qq.com"); //邮件发送的目的地helper.setFrom("service_xxx@163.com");//邮件发送者(非必须写)//添加文件helper.addAttachment("图片1.jpg",new File("C:\\Users\\31355\\Desktop\\桌面文件夹\\IO1.jpg"));helper.addAttachment("图片2.jpg",new File("C:\\Users\\31355\\Desktop\\桌面文件夹\\IO2.jpg"));mailSender.send(mimeMessage); //提交邮件发送}
6、演示结果;
7、加上定时任务,再去发送邮件,就是这样的效果,但是你最好不要去恶搞你的朋友!!!写一个service
@Service
public class MailSendTestServer {@Autowiredprivate JavaMailSenderImpl mailSender;//每隔三秒钟发送一次@Scheduled(cron = "0/3 * * * * MON-SAT")public void testEmail1() {SimpleMailMessage message = new SimpleMailMessage();message.setSubject("我是xxx");message.setText("邮件测试!抱歉");message.setTo("2026685xxx@qq.com");message.setFrom("service_xxx@163.com");mailSender.send(message);}
再开启定时任务注解:
8、再启动这个项目,就会没三秒向指定邮箱发送指定邮件。
这些都是入门演示,要会灵活运用在你们的项目中,这才有意义!
有用点个关注,手留余香!
spring-boot邮件发送功能演示(163邮箱与QQ邮箱互发)相关推荐
- 使用Spring实现邮件发送
2019独角兽企业重金招聘Python工程师标准>>> 这两天写个小程序需要使用邮件发送的功能,在网上搜索了一帮子文章,感觉还是使用Spring的邮件发送功能比较方便,哈哈,懒人就这 ...
- Spring Boot最新版集成邮件发送功能大全
Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...
- 实现Spring Boot 定时发送带附件邮件功能
文章目录 版本说明: 1.pom依赖 2.配置 3.通过EasyExcel 将数据导出为Excel 4.发送邮件 5.定时功能 6.常用邮箱的服务器(SMTP/POP3)地址和端口总结 版本说明: s ...
- java邮件支持_使用Spring的JAVA Mail支持简化邮件发送功能
闲来无事,翻看<Spring in Action>,发现Spring集成了对JAVA Mail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多. Spring的邮件发送的核心是Mail ...
- Spring Boot笔记-发送纯字符串邮件及带附件邮件
首先引入Maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId& ...
- Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用
如果没有自建邮件服务器,直接结合网易.阿里邮箱可以非常简单方便的使用邮件发送功能. 注册前首先得保证自己有一个域名,阿里最好是在当前账户下有一个已注册的域名. 根据下方地址注册相应的账户信息,选择其中 ...
- Java技术:SpringBoot实现邮件发送功能
邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...
- java实现邮件发送共鞥_Java实现复杂邮件发送功能(基于JavaMail)的实例
这篇文章主要为大家详细介绍了基于JavaMail的Java实现复杂邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 上一篇文章 基于 JavaMail 的 Java 邮件发送:简单邮件发 ...
- node.js发送html,利用Node.JS实现邮件发送功能
第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使 ...
最新文章
- JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
- ASP.NET 2.0 中的代码隐藏和编译
- 【用word快速输入公式】希腊字母名称和大小写
- python qt5 数据改变 触发信号_pyqt5 使用 QTimer, QThread, pyqtSignal 实现自动执行,多线程,自定义信号触发。...
- 城市风云儿的装备体系
- Java EE之Hibernate异常总结【5】java.lang.StackOverflowError[栈溢出]
- 【2021ACL】NLP的应用
- spring mysql 中文_Spring+mysql+velocity 中文问题解决方法
- 信捷XC系列PLC-编程
- 解决方案:微信小程序下载文档出错downloadFile:fail url not in domain list
- 国科大学习资料--矩阵分析与应用(李保滨)--2017年期末考试试卷
- js可以用的万年历API
- 解决问题Uncaught SyntaxError: The requested module ‘/node_modules/hls.js/dist/hls.js‘ does not provide
- 英文字母pc是什么意思,互联网的pc指的是什么
- 股票涨跌和买卖预测计算公式
- 基于Java 生产者消费者模式(详细分析)
- 无业务不伸缩之一,云计算有ESS(基础篇)
- 《高仿支付宝运动轨迹七日曲线图》
- glide 加载图片宽度填满,高度自适应图片比列
- ubuntu20.04搭建janus服务器
热门文章
- 关于酷派S66手机在WIN7系统下如何连接上网
- 学习CURL扩展功能的使用(二)
- 计算机的声音图标打不开怎么回事,w7 64位电脑声音的小喇叭点不开怎么办
- 超高颜值难以抵挡 乐泡淳移动电源体验
- Intent.EXTRA_STREAM requires the provider be exported, or grantUriPermission()
- 服务器系统我们无法创建新的分区,安装Win10系统提示“无法创建新的分区也找不到现有的分区”如何解决...
- 联想拯救者R9000X、Y9000X、R7000P和Y7000P有什么区别 哪个好
- electron ant-design-vue 不能用_羽绒服上的脏怎么去除小窍门-羽绒服不能水洗要怎么洗...
- 网站策划需要具备的知识
- QML项目-ROSON课堂(仿腾讯游戏平台WeGame)