JavaMail进行邮箱验证

8 篇文章 0 订阅
4 篇文章 0 订阅

JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。


邮箱收发过程流程图
这里写图片描述


邮箱服务器和客户端的安装配置

  1. 安装软件

     1.MailServer 易邮服务器
     2.Foxmail 邮箱管理服务器
    
     这里的两个软件的安装可直接从百度下载,安装就是一步一步next就可以啦!
    

代码实现核心的代码

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

/**
 * 邮件发送工具类
 * 
 * @author af
 *
 */
public class MailUtil {
    /**
     * 发送邮件方法
     * 
     * @param to
     *            :给谁发送
     * @param code
     *            :邮件的激活码
     * @throws MessagingException
     * @throws Exception
     */
    public static void sendMail(String to, String code) throws Exception {
        // 1.创建连接对象,连接到邮箱服务器
        Properties props = new Properties();
        // prop.setProperty("host", "values");
        Session session = Session.getInstance(props, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("service", "123");
            }
        });
        // 2.创建邮件对象
        Message message = new MimeMessage(session);
        // 2.1 设置发件人的地址
        message.setFrom(new InternetAddress("service@store.com"));
        // 2.2 设置收件人
        message.setRecipient(RecipientType.TO, new InternetAddress(to));// CC:抄送
                                                                        // BCC:
        // 2.3 设置邮件的主题
        message.setSubject("来自store.com的激活邮件");
        // 2.4 设置邮件的正文
        String content = "<h1>这是一封来自store.com的激活邮件!</h1><br/><hr/><h3><a href='http://localhost:8080/regist_web/ActiveServlet?code="
                + code + "'>http://localhost:8080/regist_web/ActiveServlet?code=" + code + "</a></h3>";
        message.setContent(content, "text/html;charset=UTF-8");
        // 3.发送一封邮件
        Transport.send(message);
    }
}

数据库环境:(这里以mysql5.7为例)

所需的数据表示一张:user 建表语句如下:
CREATE TABLE `user` (
  `uid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `username` varchar(20) DEFAULT NULL COMMENT '用户名',
  `password` varchar(20) DEFAULT NULL COMMENT '密码',
  `nickname` varchar(20) DEFAULT NULL COMMENT '昵称',
  `email` varchar(30) DEFAULT NULL COMMENT '注册邮箱',
  `state` int(11) DEFAULT NULL COMMENT '激活状态 0:未激活 1:已激活',
  `code` varchar(64) DEFAULT NULL COMMENT '激活码',
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8

如果需要源码参考,请联系我 15737568028@163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值