A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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";
        }



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马