背景:使用 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邮箱互发)相关推荐

  1. 使用Spring实现邮件发送

    2019独角兽企业重金招聘Python工程师标准>>> 这两天写个小程序需要使用邮件发送的功能,在网上搜索了一帮子文章,感觉还是使用Spring的邮件发送功能比较方便,哈哈,懒人就这 ...

  2. Spring Boot最新版集成邮件发送功能大全

    Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...

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

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

  4. java邮件支持_使用Spring的JAVA Mail支持简化邮件发送功能

    闲来无事,翻看<Spring in Action>,发现Spring集成了对JAVA Mail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多. Spring的邮件发送的核心是Mail ...

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

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

  6. Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用

    如果没有自建邮件服务器,直接结合网易.阿里邮箱可以非常简单方便的使用邮件发送功能. 注册前首先得保证自己有一个域名,阿里最好是在当前账户下有一个已注册的域名. 根据下方地址注册相应的账户信息,选择其中 ...

  7. Java技术:SpringBoot实现邮件发送功能

    邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...

  8. java实现邮件发送共鞥_Java实现复杂邮件发送功能(基于JavaMail)的实例

    这篇文章主要为大家详细介绍了基于JavaMail的Java实现复杂邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 上一篇文章 基于 JavaMail 的 Java 邮件发送:简单邮件发 ...

  9. node.js发送html,利用Node.JS实现邮件发送功能

    第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使 ...

最新文章

  1. JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
  2. ASP.NET 2.0 中的代码隐藏和编译
  3. 【用word快速输入公式】希腊字母名称和大小写
  4. python qt5 数据改变 触发信号_pyqt5 使用 QTimer, QThread, pyqtSignal 实现自动执行,多线程,自定义信号触发。...
  5. 城市风云儿的装备体系
  6. Java EE之Hibernate异常总结【5】java.lang.StackOverflowError[栈溢出]
  7. 【2021ACL】NLP的应用
  8. spring mysql 中文_Spring+mysql+velocity 中文问题解决方法
  9. 信捷XC系列PLC-编程
  10. 解决方案:微信小程序下载文档出错downloadFile:fail url not in domain list
  11. 国科大学习资料--矩阵分析与应用(李保滨)--2017年期末考试试卷
  12. js可以用的万年历API
  13. 解决问题Uncaught SyntaxError: The requested module ‘/node_modules/hls.js/dist/hls.js‘ does not provide
  14. 英文字母pc是什么意思,互联网的pc指的是什么
  15. 股票涨跌和买卖预测计算公式
  16. 基于Java 生产者消费者模式(详细分析)
  17. 无业务不伸缩之一,云计算有ESS(基础篇)
  18. 《高仿支付宝运动轨迹七日曲线图》
  19. glide 加载图片宽度填满,高度自适应图片比列
  20. ubuntu20.04搭建janus服务器

热门文章

  1. 关于酷派S66手机在WIN7系统下如何连接上网
  2. 学习CURL扩展功能的使用(二)
  3. 计算机的声音图标打不开怎么回事,w7 64位电脑声音的小喇叭点不开怎么办
  4. 超高颜值难以抵挡 乐泡淳移动电源体验
  5. Intent.EXTRA_STREAM requires the provider be exported, or grantUriPermission()
  6. 服务器系统我们无法创建新的分区,安装Win10系统提示“无法创建新的分区也找不到现有的分区”如何解决...
  7. 联想拯救者R9000X、Y9000X、R7000P和Y7000P有什么区别 哪个好
  8. electron ant-design-vue 不能用_羽绒服上的脏怎么去除小窍门-羽绒服不能水洗要怎么洗...
  9. 网站策划需要具备的知识
  10. QML项目-ROSON课堂(仿腾讯游戏平台WeGame)