JavaMail~用户注册与激活。
文章目录
Java Mail。
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是 Sun 发布的用来处理 email 的 API。它可以方便地执行一些常用的邮件传输。我们可以基于 JavaMail 开发出类似于 Microsoft Outlook 的应用程序。
~百科。
应用。
用户注册后,激活验证邮件。
用户过生日,系统发送生日祝福邮件。
最新活动和优惠。
邮件收发协议。
简单邮件传输协议~Simple Mail Transfer Protocol。
SMTP 是一种提供可靠且有效的电子邮件传输的协议。SMTP 是建立在 FTP 文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP 独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP 的重要特性之一是其能跨越网络传输邮件,即“SMTP 邮件中继“。使用 SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。
一组用于源地址到目的地址传送邮件的协议,由 ta 来控制信件中的中转方式。
SMTP 协议属于TCP/IP 协议簇,ta 帮助每台计算机在发送或中转信件时找到下一个目的地。
SMTP 服务器则是遵循 SMTP 协议的发送邮件服务器,用来发送或中转发出电子邮件。
通常把处理用户 SMTP 请求(邮件发送请求)的邮件服务器称为 SMTP 服务器。
默认端口号 25。
POP3 协议。
POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本 3”。是 TCP/IP 协议族中的一员,由 RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了 SSL 加密的 POP3 协议被称为 POP3S。
本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
默认端口号 110。
邮件收发过程。
邮件服务器。
使用易邮邮件服务器在本地搭建。
也可以直接使用 163 126 的服务器。
搭建开发环境。
CREATE SCHEMA `regist_web` ;
use regist_web;
CREATE TABLE `regist_web`.`user` (
`uid` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(20) NULL DEFAULT NULL,
`password` VARCHAR(20) NULL DEFAULT NULL,
`nickname` VARCHAR(20) NULL DEFAULT NULL,
`email` VARCHAR(30) NULL DEFAULT NULL,
`state` INT NULL DEFAULT NULL,
`code` VARCHAR(64) NULL DEFAULT NULL,
PRIMARY KEY (`uid`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
代码。
https://gitee.com/lyfGeek/geek_javamail.git
package com.geek.utils;
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 to, String code) throws MessagingException {
// 创建连接对象。连接到邮箱服务器。
Properties props = new Properties();
// props.setProperty("host", "")
// javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
props.setProperty("mail.smtp.host", "smtp.qq.com");
// com.sun.mail.smtp.SMTPSendFailedException: 503 Error: need EHLO and AUTH first !
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// 登录到邮箱服务器。
// return new PasswordAuthentication("lyfGeek@qq.com", "(填写自己的邮箱密码)。");
return new PasswordAuthentication("lyfGeek@qq.com", "dmcgxzlzlnbkdidd");
// return super.getPasswordAuthentication();
}
});
// 创建邮件对象。
Message message = new MimeMessage(session);
// 设置发件人。
message.setFrom(new InternetAddress("lyfGeek@qq.com"));
// 设置收件人。
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
// 设置邮件主题。
message.setSubject("来自 geek 的激活邮件。");
// 设置邮件正文。
message.setContent("来自 geek 的激活邮件。请点击以下链接激活。" +
"http://localhost:8080/regist_web/ActiveServlet?code=" + code, "test/html;charset=utf-8");
// 发送一封激活邮件。
Transport.send(message);
}
}