Servlet实现邮箱注册功能

32 阅读1分钟

1.需要导入相应的jar包,以及打开qq邮箱SMTP服务

1.1在pom.xml导入发送email的依赖

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-email</artifactId>
    <version>1.5</version>
</dependency>

1.2开启邮件服务

打开邮箱里的SMTP服务

image.png

image.png

2. 核心代码

//生成6位数  验证码
public static String random1(){
    String code = "";
    Random rd=new Random();
    for (int i = 0; i < 6; i++) {
        int r = rd.nextInt(10); //每次随机出一个数字(0-9)
        code = code + r;  //把每次随机出的数字拼在一起
    }
    System.out.println(code);
    return code;
}

发送验证码


//发送					这里的参数为   qq   和验证码
public static void test(String email,String yzm){
    HtmlEmail send = new HtmlEmail();//创建一个HtmlEmail实例对象
    // 获取随机验证码
    String resultCode = yzm;
    try {
        send.setHostName("smtp.qq.com");
        send.setAuthentication("XXX@qq.com", "开启连接后获取的密钥"); //第一个参数是发送者的QQEamil邮箱   第二个参数是刚刚获取的授权码

        send.setFrom("XXX@qq.com", "若轩");//发送人的邮箱为自己的,用户名可以随便填  记得是自己的邮箱不是qq
        send.setSSLOnConnect(true); //开启SSL加密
        send.setCharset("utf-8");
        send.addTo(email);  //设置收件人    email为你要发送给谁的邮箱账户   上方参数
        send.setSubject("戏曲网注册:"); //邮箱标题
        send.setMsg("注册的验证码"+yzm+" 请快点注册噢,30分钟后将会失效"); //Eamil发送的内容
        send.send();  //发送
    } catch (EmailException e) {
        e.printStackTrace();
    }
}

    使用只需要将

send.setAuthentication(“XXX@qq.com”, “开启连接后的密钥”);//第一个参数是发送者的QQEamil邮箱 第二个参数是刚刚获取的授权
send.setFrom("XXX@qq.com", "若轩");//发送人的邮箱为自己的,用户名可以随便填

进行修改成自己的即可使用