java接入邮件服务

当用户使用邮箱注册了以后,我们往往需要向用户的邮箱发送一封邮件,提示用户注册成功,这时候便需要在我们的程序中接入邮件服务了。(以QQ邮箱为例)

1.开启服务

  1. 进入QQ邮箱并登录,然后点击设置
    在这里插入图片描述
  2. 选择账户,往下滑找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
    在这里插入图片描述
    在这里插入图片描述
    这里我们需要开启前两个服务,可能需要验证。
  3. 开启服务以后,我们还得获取一下授权码(如图),按照提示生成就可以了,记得保存下来。
    在这里插入图片描述

2.正式接入

  1. 首先,随便建一个springboot的项目,过程就不写出来了。
  2. 在pom.xml里面引入依赖
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
  1. 在你的application配置文件里加入以下内容,这里我使用的是properties,你也可以使用yml
spring.mail.host=smtp.qq.com
spring.mail.password=ewunfeluhawgecbc  #密码就是刚刚生成的授权码
spring.mail.username=yourMail@qq.com   #邮箱换成自己的邮箱

3.正式使用

编写测试方法

@Test
    void sendMail() {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        //你的邮件主题
        simpleMailMessage.setSubject("测试");
        //邮件内容
        simpleMailMessage.setText("这是测试信息");
        //发送目标
        simpleMailMessage.setTo("xxxx@xxxx.com");
        //你的邮箱
        simpleMailMessage.setFrom("xxxx@qq.com");
        javaMailSender.send(simpleMailMessage);
    }

运行结果
在这里插入图片描述
收到的邮件
在这里插入图片描述
这样邮件接入服务就成功了,但在实际运用中,如果把以上代码直接插入你的注册功能里面,会大大降低的你的程序效率,会让用户体验不良,为什么呢?
假设,把注册信息插入数据库的时间为200ms,然后发送邮件花费200ms,然后才返回数据给客户端,这样用户注册就花了400ms,原本200ms就能完成,就因为你加了发送邮件,白白增加了200ms让用户等待时间,事实上让用户知道注册成功是在你成功插入数据的时候就已经成功了,而不是发送了邮件以后。那怎么解决这个问题呢?
我们可以把发送邮件事交给另一个服务去异步执行。此时,你插入注册信息到数据库依旧是200ms,然后调用服务花了10ms,共花费210ms,一对比高下立判。那么这个服务是什么呢——中间消息组件。下篇文章就来写一下中间消息组件RabbitMQ。

好了,接入邮件服务就是这样了,若有哪里写错了,欢迎指正。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读