springboot-简单的邮箱验证

在邮箱设置–>账户下开启POP3/SMTP服务

1.导入mail依赖

<!--        mail邮件依赖-->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

2.使用工具类

package com.iteam.utils;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**
 * @title: EmailUtil
 * @Author: NightRain
 * @Date: 2022/5/31 16:41
 * @Version 1.0
 * @Description:
 */
public class EmailUtil {
    // 发送人邮箱服务器
    public static String smtp_host = "smtp.qq.com";
    // 发送人qq邮箱
    public static String username = "发送人的邮箱地址";
    // 授权码(登录邮箱-->设置-->邮箱安全设置-->客户端授权密码),这里不是邮箱的密码,切记!
    public static String password = "授权码";
    // 发送人qq邮箱
    public static String from = "****";

    public static void sendMail(String to, String subject, String text) throws Exception {
        // 1 准备发送邮件需要的参数
        Properties props = new Properties();
        // 设置主机地址 smtp.qq.com smtp.126.com smtp.163.com
        props.put("mail.smtp.host", smtp_host);
        // 是否打开验证:只能设置true,必须打开
        props.put("mail.smtp.auth", true);

        // 2 连接邮件服务器
        Session session = Session.getDefaultInstance(props);
        // 3 创建邮件信息
        MimeMessage message = new MimeMessage(session);

        // 4 设置发送者
        InternetAddress fromAddress = new InternetAddress(from);
        message.setFrom(fromAddress);
        // 5 设置接收者
        InternetAddress toAddress = new InternetAddress(to);
        // to:直接接收者 cc:抄送 bcc暗送
        message.setRecipient(Message.RecipientType.TO, toAddress);
        // 6 设置主题
        message.setSubject(subject);
        // 7 设置正文
        message.setText(text);

        // 设置HTML方式发送
        message.setContent(text, "text/html;charset=utf-8");

        // 8 发送:坐火箭
        Transport transport = session.getTransport("smtp");
        // 参数不能少,表示的是发送协议
        // 登录邮箱,此处的密码是授权码
        transport.connect(username, password);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
}

3.直接在Controller层使用

            StringBuilder builder = new StringBuilder();
            int num;
            for (int i = 0; i < 6; i++) {
                num =(int)(Math.random()*10);
                builder.append(String.valueOf(num));
            }
            //随机生成的六位数字验证码
            String snum = builder.toString();
            //通过用户填入的邮箱,向其发送邮件
            String uEmail = users.getUEmail();
            EmailUtil.sendMail(uEmail,"验证信息","您的验证码为:"+snum);

4.测试

在这里插入图片描述

接收者

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值