关于注册时验证邮箱,并实现类似安卓的吐丝效果

思路

1.数据库一共写五个字段
在这里插入图片描述

2.准备需要的测试环境
在这里插入图片描述
3.用户在注册界面填写资料,点击注册,插入数据成功,将state字段设置为0(也可以在数据库设置默认是0),同时生成一个激活码(用工具类随机生成)也存入数据库

4.发送邮,并通过吐丝效果提示用户注册成功即将跳转至邮箱登录界面,请登录邮箱点击邮件链接进行激活。邮件中带一个激活成功页的URL,URL里有两个参数(1,用户名,2:对应的激活码)

5.用户登录邮箱点击链接,来到处理激活的业务逻辑页面或Servlet,得到URL中两个参数,以这两个参数为条件查询数据库里的数据,如果有并且一致,则将字段state为1,并把激活码字段清空,最后激活成功,转到登录页面也可以自己设计一个激活成功页.

关于邮件激活工具类

配置好后直接调用工具类中的sendMail方法即可 可以先用main方法测试一次 记住需要导入mail.jar包

/**
 * 邮件工具类
 * @author JianAi
 */
public class MailUtils {
   
    /**
     * 邮箱服务器地址 根据你的发信邮箱需要修改,126邮箱为smtp.126.com,163邮箱为163.smtp.com,QQ为smtp.qq.com
     */
    public static final String HOST = "smtp.qq.com";
    /**
     * 发件人邮箱账户 用来发送激活链接的邮箱账户
     */
    public static final String FROM = ";
    /**
     * 发件人授权码 不是登录密码 126不用开启权限,QQ需要其它自习Goole或者百度
     */
    public static final String PASSWORD = ";

    /**
     * 获取Session
     * @return session
     */
    private static Session getSession() {
   
        Properties properties = new Properties();
        //设置服务器地址
        properties.put("mail.smtp.host", HOST);
        properties.put("mail.smtp.auth", "true");

        Authenticator authenticator = new Authenticator() {
   
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
   
                return new PasswordAuthentication(FROM, PASSWORD);
            }

        };
        Session session = Session.getDefaultInstance(properties, authenticator);
        return session;
    }

    /**
     * 发送邮件
     * @param emailAddress 收件人邮箱地址
     * @param emailMsg 激活码
     * @param username 激活账户
     */
    public static void sendMail(String emailAddress, String emailMsg,String username) {
   
        Session session = getSession();

	    //邮件内容可以自行编辑
        try {
   
            String url = "http://localhost:8080/EmailDemo/SystemServlet?method" +
                    "=activate&username="+username+"&code="+emailMsg;

            String content = "<h1>来自Dawn的激活邮件!激活请点击以下链接!</h1><h3><a href='"+url+"'>"+url+"</a" +
                    "></h3>";

            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(FROM));
            InternetAddress[] addresses = {
   new InternetAddress(emailAddress)};
            msg.setRecipients
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值