Spring Boot 摸索之路-3:Authenticate users by E-mail

在很多网站或者应用第一次注册的时候都会要求验证用户,这次就来学习一个邮件验证的小工具、
MailUtil是基于 oh-my-email

创建基于MavenSpring Boot 工程

具体创建步骤不赘述了,因为只基于邮件发送功能,所以不用数据库和web之类的依赖。

pom.xml中导入依赖

pom.xml中加入以下依赖:

1
2
3
4
5
<dependency>
<groupId>io.github.biezhi</groupId>
<artifactId>oh-my-email</artifactId>
<version>0.0.4</version>
</dependency>

配置邮件服务器

  • 在邮箱中开启POP3/IMAP/SMTP服务

    这里以qq邮箱为栗子🌰

  1. 登陆网页邮箱,进入设置界面

    第一步

  2. 设置界面中进入子菜单账户,向下翻找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

    第二步

  • 新建邮箱工具类MailUtil.java

  • 配置邮件服务器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class MailUtil {

    /**
    * 根据 OhMyEmail 的文档来配置邮件服务器
    *
    * 下面需要自行输入的参数:
    * @param emailAddress 发送邮件的邮箱地址
    * @param emailPassword 邮箱授权码
    */
    @Before
    public void before() {
    OhMyEmail.config(SMTP_QQ(false), "emailAddress", "emailPassword");
    // 企业邮箱可以使用一下配置
    //OhMyEmail.config(SMTP_ENT_QQ(false), "emailAddress", "emailPassword");
    }
    }

编写测试类

因为测试类需要用到邮件服务器配置,所以直接在邮箱工具类中实现

邮件发送

1
2
// 该邮箱修改为你需要测试的邮箱地址
private static final String TO_EMAIL = "xxxxx@gmail.com";

测试类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* @Param TO_EAMIL 收件人地址
* @see OhMyEmail #from() 发件人姓名
* @see OhMyEmail #to() 收件人地址
* @see OhMyEmail #text() 发送内容
* @see OhMyEmail #send() 发送方法
*/
@Test
public void testSendText() throws SendMailException {
OhMyEmail.subject("This is a Test Email")
.from("YourName")
.to(TO_EMAIL)
.text("content")
.send();
Assert.assertTrue(true);
}

邮件模版

一般来说,很多网页或应用厂商的验证码邮件中都会有很好看的排版,所以我们这里只发送一些文字肯定是不够看的,所以可以使用一些HTML的模版来达到一些更漂亮的效果。

这里再举个栗子🌰

Example

这是怎么做到的呢。。。

说实话,我没(meì)研究明白

在Github主页的技术文档中有详细的测试类,日后再研究。。。

Run

终于把模版整明白了,点此链接


Reference

GitHub源码: oh-my-email
Allwayz