邮箱验证的思路及实现

邮箱验证

一、开启POP3/SMTP服务

QQ邮箱、网易163邮箱均可。这里以网易163邮箱为例

1、注册163邮箱帐号,进入设置

1、进入设置的POP3/SMTP/IMAP选项在这里插入图片描述

2、开启两个服务,IMAP/SMTP、POP3/SMTP服务。会有一系列验证,最后会给一个授权码,保存好,代码里需要用到。
在这里插入图片描述

2、java里的配置

我们需要用到的jar包是java.mail。这里需要一个MailUtils工具类,里面有些东西需要修改,配置

com.xxx.util.MailUtils
package com.qhx.util;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class MailUtils {
    public static void sendMail(String email) throws Exception{
        // 1、创建一个程序与邮件服务器会话对象 Session
        // 创建参数配置,用于连接邮件服务器的参数配置
        Properties prop = new Properties();  // 参数配置
        prop.setProperty("mail.transport.protocol","SMTP"); // 使用协议,JavaMail规范要求
        prop.setProperty("mail.host","smtp.163.com"); // 发件人邮箱的SMTP服务器地址
        prop.setProperty("mail.smtp.auth","true"); // 请求认证,参数名称与具体实现有关,指定验证为true

        // 创建验证器  输入授权码,不是密码
        Authenticator auth = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 如我的邮箱  xxxxx@qq.com
                return new PasswordAuthentication("发件人的邮箱名","对应的授权码");
            }
        };

        Session session = Session.getInstance(prop,auth);

        // 2、创建一个Message,它相当于邮件内容
        Message message = new MimeMessage(session);
        // 这里要和上面对应,否则报错 
        message.setFrom(new InternetAddress("发件人的邮箱名"));

        message.setRecipient(Message.RecipientType.TO,new InternetAddress(email)); // 设置发送方式和接收者

        // 设置邮件主题
        message.setSubject("邮件主题");

        // 设置邮件正文  emailMsg内容就是邮件的内容
        String emailMsg = "这是一封激活邮件,请<a href='http://localhost:8080/Dangdang/user/emailActive.do?userEmail="+email+"'>点击</a>该链接激活账户";
        message.setContent(emailMsg,"text/html;charset=utf-8");

        // 3、创建Transport用于将邮件发送
        Transport.send(message);
    }
}

参数配置

在这里插入图片描述

3、邮箱验证思路

填写完注册表单后,就执行注册方法,只不过用户表属性为userState,代表用户的激活状态(0未激活,1激活)。

表单填写后,发送邮件(调用MailUtils的sendMail方法)。发送的邮件正文中有超链接,用户点击超链接,跳转到激活用户状态的(0–>1)的controller,再跳转到注册成功/登录页面。

endMail方法)。发送的邮件正文中有超链接,用户点击超链接,跳转到激活用户状态的(0–>1)的controller,再跳转到注册成功/登录页面。

在这里插入图片描述
有待优化,加油!

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值