JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。
邮箱收发过程流程图
邮箱服务器和客户端的安装配置
安装软件
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