springboot系列:如何实现邮件发送提醒,你一定得会(准备篇)

Posted bug菌¹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot系列:如何实现邮件发送提醒,你一定得会(准备篇)相关的知识,希望对你有一定的参考价值。

👨‍🎓作者:bug菌

🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

【开发云】年年都是折扣价,不用四处薅羊毛

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

       小伙伴们在批阅文章的过程中如果觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章 点亮👍吧,您的点赞三连( 收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

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

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

二、准备工作🔥

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

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

1️⃣开通POP3/SMTP服务

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

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

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

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

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

 d、首先提示框先不关,放着,然后你到你的手机端进行短信发送,具体发送内容及发送人我下边已给,大家复制粘贴即可。发送完后,再点击弹框的【我已发送】。

短信内容为:‘配置邮件客户端’
发送至号码:‘1069070069’

 e、短信发送成功后,点击完[我已发送],邮箱界面会再次弹出一个窗口,具体展示如下。弹框表示成功开启POP3服务。切记,这串授权码务必拷贝下来,随便找个文档保存好,后边必须要用到它,要不然你还得再申请一个授权码,就会很麻烦啦。

       这个授权码就是我们用来第三方客户端登录的密码,也就是你进行代码发送邮件的关键一环。

 2️⃣引入spring-boot-starter-mail 依赖

       由于Spring推出了关于Mail的JavaMailSender类,基于该类Spring Boot又对其进行了进一步封装,从而实现了轻松发送邮件的集成。而且JavaMailSender类提供了强大的邮件发送能力,支持各种类型的邮件发送。那我们就直接使用Spring Boot提供对mail-starter进行操作吧,后续再扒源码进行深入研究。

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

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

3️⃣application-dev.yaml文件配置

        如下是在系统配置文件中配置,如果你使用的是.properties格式的配置文件,那么你就将如下的配置格式改成对应格式即可,比如语法spring.mail.hots = smtp.qq.com 。.yaml改成.properties修改方式为:冒号改成[ . ] 然后值用[ = ]  即可。

       然后是跟我用一样配置文件格式的,你们就直接复制过去,注意两点。

  • 第一,你们active所本地运行的环境是哪个,就把这段配合加到那个环境上面,我是配在dev环境上。
  • 第二,也就是提醒你们要保存下来的那段授权码,对应下边的password。

具体配置如下:仅供参考。

spring:
  mail:
    host: smtp.qq.com  # 配置 smtp 服务器地址
    port: 25   #smtp 服务器的端口
    username: xxxx@qq.com  #配置邮箱用户名;你自己的邮箱
    password: iptxxxxxkbffjbdhg  #配置申请到的授权码;这里填写刚才短信申请到的授权码
    default-encoding: UTF-8   #配置邮件编码
    protocol: smtp   #协议

       按顺序完成如上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邮箱账户的保护机制啦,要不然被窃取到账户密码,随便就能拿来做发送源,你们想想,是不是这样?

四、附录-邮件属性🔥

       如下是Spring Boot通用配置邮件属性,供大家参考一下。

        以上是spring配置提供对mail的一些配置属性,具体配置的就跟我上边给的那几个主要的属性比较常见,基本就是针对邮件发送这一块业务的话,基本那几个配置属性就够了,其余的,大家也可以自行摸索,因为我也不懂呀🤓,哈哈哈,菜的很真实。

     ... ...

       ok,以上就是我这期的全部内容啦,如果还想学习更多,你可以看看我的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬的。好啦,咱们下期见~

五、往期推荐🔥

     ... ...

六、文末🔥

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

【开发云】年年都是折扣价,不用四处薅羊毛

       我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

        最后送大家两句我很喜欢的话,与诸君共勉!


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

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


​​​

💌如果文章对您有所帮助,就请留下您的吧!(#^.^#);

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

💗如果对文章有任何疑问,还请文末留言或者加群吧;

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

💕版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。

以上是关于springboot系列:如何实现邮件发送提醒,你一定得会(准备篇)的主要内容,如果未能解决你的问题,请参考以下文章

springboot系列(十六):如何实现发送邮件提醒,附完整源码(完结篇)

springboot系列(十六):如何实现发送邮件提醒,附完整源码(完结篇)

springboot系列(十六):如何实现发送邮件提醒,附完整源码(完结篇)

springboot系列(十三):如何实现发送普通邮件?你一定得会|超级详细,建议收藏

springboot系列(十三):如何实现发送普通邮件?你一定得会|超级详细,建议收藏

springboot系列(十五):如何实现静态邮件模板发送?你一定得会|超级详细,建议收藏