SpringBoot使用邮箱发送验证码实现注册功能实例

本文介绍了如何在SpringBoot项目中利用Apache Commons Email组件发送验证码,以实现用户注册功能。首先,文章讲解了配置Email参数,包括hostname、host、username和特殊令牌(非登录密码)。接着,通过SpringBoot的yml配置文件,展示了如何根据不同环境灵活配置这些参数。虽然这种方式的缺点是配置写死,但在实际应用中建议将邮箱配置改为数据字典以便于外部配置。最后,文章提醒在发送和验证验证码时,应限制同一邮箱在短时间内多次发送验证码的行为,以防止滥用。
摘要由CSDN通过智能技术生成

这里有两种方式:
使用Apache Common包中开源的email组件,通过实例化HtmlEmail()对象,可通过配置外置字典、或yml等配置文件实现灵活配置;
依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-email</artifactId>
    <version>1.5</version>
</dependency>

使用SpringBoot Starter email组件;
依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

我这里是采用的第一种方式,简单易懂;

首先需要配置Email的各项参数,其中hostname、host、username、passsword(注意:此处的密码并不是登录的密码,而是邮箱开启smtp服务的令牌);
我这里使用SpringBoot的yml配置文件,可以通过切换不同的环境:local/dev/test/pro/prod等等环境实现灵活配置,该配置为自定义配置;
我此处使用的是本人的163邮箱,在实际开发中需要换为公司的或项目专用邮箱;
(注意:此种方式有缺陷,即为不能从外部进行灵活配置,只能写死配置文件,在实际使用上应该配置为数据字典,可以在外部直接进行灵活配置)

yml:

##Email配置
email:
  host-name: smtp.163.com #服务地址,可以直接在web端登录,找到smtp服务看到,163邮箱默认开放25端口,可暂时不设置
  authentication:
    username: xxx.163.com
    password: xxx #手动的设置令牌
  form:
    mail: xxx@163.com #发送方,必须为你设置的username一致
    name: elog #发送方显示的名称,可以随意设置
  charset: UTF-8 #编码格式,一般设置为UTF-8

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值