Springboot系列(十二):如何代码实现发送邮件提醒,你一定得会!(准备篇)

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

        嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

一:前言

        今天临时接到一个需求,要求bug菌实现一个定时发送邮件的功能,并要求一天搞定。接收到这个需求的第一反应,好家伙,这不是很简单,告诉我发件人收件人邮箱地址等相关信息,我一刻钟就给它搞定,小伙伴们,你们有写过类似发送邮件业务么?如果没有,那可以看看bug菌是怎么实现的吧。

小伙伴们如果批阅完文章对你有一丝帮助,还请别吝啬你的赞呀,欢迎点赞、关注、留言呀。您的素质三连即是对bug菌我写作道路上最好的鼓励与加油!

好了,咱们就开始这期的内容吧。

二、准备工作

先给大家透露下,我会把这个功能点分多篇进行零一教学,目的是为了不造成篇幅太长从而导致小伙伴们视觉疲劳,没有欲望阅读完。所以还请部分小伙伴多担待哈~~~

就以qq邮箱为例给大家做演示吧。

1、开通POP3/SMTP服务

1、如何开通你发送邮箱的POP3/SMTP服务呢?我会教大家的,咱们往下看。

至于为什么开通,我待会给大家演示一下,如果不开通,会出现什么问题?先教大家如何开通,如下是步骤:a->b->c->d->e

a、网页登录qq邮箱,首页点击邮箱设置,然后点击面包屑-账户

扫描二维码关注公众号,回复: 13670827 查看本文章

b、往下滑,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 ;然后点击POP3 最右边的开启。

c、点开开启会弹出一个框,让你进行短信验证开通。

d、进行手机短信发送,发送完后,点击【我已发送】。

短信内容为:‘配置邮件客户端’

发送至号码:‘1069070069’

e、短信发送成功后,邮箱界面会弹出一个窗口,具体如下,表示成功开启,切记,这串授权码务必拷贝下来,随便找个地儿存放,后面必须要用,要不然你还得再申请一个授权码。

2、引入spring-boot-starter-mail 依赖。

由于Springboot有对邮件发送等功能做集成,那我们就直接使用该starter进行操作吧,后续再扒源码进行深入研究。

即我们在pom文件中引入该starter-mail依赖即可。

<!--邮件通知-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
复制代码

3、application-dev.yaml文件配置

spring:
  mail:
    host: smtp.qq.com  # 配置 smtp 服务器地址
    port: 587   #smtp 服务器的端口
    username: [email protected]  #配置邮箱用户名;你自己的邮箱
    password: iptxxxxxkbffjbdhg  #配置申请到的授权码;这里填写刚才短信申请到的授权码
    default-encoding: UTF-8   #配置邮件编码
  # 配饰 SSL 加密工厂
  properties:
    mail:
      smtp:
        socketFactoryClass: javax.net.ssl.SSLSocketFactory
      debug: true  #开启 DEBUG 模式
复制代码

按顺序如上操作3个步骤,发送邮件的环境配置就完事了,磨刀不误砍柴工嘛,接下来我再来回答大家的疑问吧。

三、不开通POP3/SMTP服务会如何?

我不开通,直接配置完,然后直接写了个test测试类进行邮件发送,报错啦,不是吧?哦吼,原来如此,再执行一遍,真报错啦啊?然后针对报错进行研究。配置文件的password 我一开始就是填的是邮箱号密码,结果就报错,然后根据报错,才反应,qq邮箱指引我要开启该服务。不过,你们也可以试试,这样印象会加深一点。

如下是报错源码:

org.springframework.mail.MailAuthenticationException: Authentication failed;
nested exception is javax.mail.AuthenticationFailedException: 535 Login Fail.
Please enter your authorization code to login.
More information in http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
复制代码

麻烦自己解读一下,哈哈哈,这下就明白了吧,报错肯定是不予推荐,这也是qq邮箱账户的保护机制啦,要不然被窃取到账户密码,随便就能拿来做发送源,你们想想,是不是这样?

... ...

OK,以上就是这期所有的内容啦,如果有任何问题欢迎评论区批评指正,咱们下期见。

四、往期热门推荐

Springboot系列(十二):如何代码实现发送邮件提醒(上篇)

Springboot系列(十二):如何代码实现发送邮件提醒(中篇)

Springboot系列(十二):如何代码实现发送邮件提醒(下篇)

Springboot系列(十二):如何代码实现发送邮件提醒(完结篇)

... ...

如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《SpringBoot零基础入门》,从无到有,从零到一!希望能帮到大家。

*************************************************************************************

做你想做的人,没有时间限制,只要愿意,什么时候都可以start,

你能从现在开始改变,也可以一成不变,这件事,没有规矩可言,你可以活出最精彩的自己。

*************************************************************************************

❤ 如果文章对您有所帮助,就请在文章末尾的左上角把大拇指点亮吧!(#^.^#);

❤ 如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;

❤ 如果对文章有任何问题,欢迎小伙伴们下方留言或者入群探讨【扣扣群号:708072830】;

❤ 鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);

❤ 版权声明:本文为博主原创文章,转载请附上原文出处链接和本文声明,版权所有,盗版必究!(*^▽^*);

猜你喜欢

转载自juejin.im/post/7054405103511404558