本帖最后由 htb52110 于 2017-12-16 13:17 编辑
注册时一般要求去邮箱进行激活用户名,这里说一下激活邮件的使用!
1、邮件发送的相关概念:
1.1、邮箱服务器
:如果一台电脑安装了邮箱服务器的软件,这台电脑称为是邮箱服务器.
1.2、电子邮箱
:其实就是邮箱服务器上的一块空间,通过电子邮箱账号访问这块空间的数据.
1.3、收发邮件的协议
1.3.1、发邮件:SMTP协议
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 25默认端口号
1.3.2、收邮件:POP3协议
:POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员。默认端口是110
1.3.3、收邮件:IMAP协议:
IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol)。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。
1.4、收发邮件的过程:
2、搭建一个邮箱服务器
2.1、 安装易邮邮箱服务器:
2.2、 配置易邮邮箱服务器:
2.2.1、修改域名:
2.2.2、注册账号:
2.3 、客户端收发邮件的软件:
* OutLook :微软,收费的.
* FoxMail :免费的.
2.4、 安装收邮件客户端软件:
3、发送邮件的代码
所需要的jar包
工具类:
package com.itheima.store.utils;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
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;
/**
* 发送邮件的工具类:
* @author admin
*/
public class MailUtils {
public static void sendMail(String to,String code){
try {
// 获得连接:
Properties props = new Properties();
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("service@store.com", "111");
}
});
// 构建邮件:
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("service@store.com"));
// 设置收件人:
// TO:收件人 CC:抄送 BCC:暗送,密送.
message.addRecipient(RecipientType.TO, new InternetAddress(to));
// 主题:
message.setSubject("来自黑马官方商城的激活邮件!");
// 正文:
message.setContent("<h1>来自购物天堂黑马官方商城的激活邮件:请点击下面链接激活!</h1><h3><a href='http://localhost:8080/store_v2.0/UserServlet?method=active&code="+code+"'>http://localhost:8080/store_v2.0/UserServlet?method=active&code="+code+"</a></h3>", "text/html;charset=UTF-8");
// 发送邮件:
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MailUtils.sendMail("aaa@store.com", "123sdfjklsdkljrsiduoi1123");
}
}
实现方法
/**
* 用户激活的方法:
* @param req
* @param resp
* @return
*/
public String active(HttpServletRequest req,HttpServletResponse resp){
// 接收激活码:
String code = req.getParameter("code");
// 根据激活码查询:
UserService userService = new UserServiceImpl();
User existUser;
try {
existUser = userService.findByCode(code);
// 判断
if(existUser == null){
// 激活码有误:
req.setAttribute("msg", "激活码错误!请重新激活!");
}else{
// 激活操作:
existUser.setState(2); // 设置激活的状态为已经激活.
existUser.setCode(null);
userService.update(existUser);
req.setAttribute("msg", "激活成功!请去登录!");
}
} catch (SQLException e) {
e.printStackTrace();
}
return "/jsp/msg.jsp";
} |
|
|
|