邮箱激活注册用户

来源:互联网 发布:星河网络 编辑:程序博客网 时间:2024/04/29 08:42

当我们注册一个网站的时候,很多时候会让我们去注册的邮箱接收激活邮件来完成注册,今天看了SSH视频,发现原理原来如此的简单,看来我们想当然的高大上其实有的时候并不难,只是我们不知道罢了~

邮箱激活的原理

当我们注册的时候我们会填写注册的邮箱,点击注册,系统会给你的邮箱发送一封邮件,里边包含了我们注册用户时生成的一个随机数(注册码),这样当我们点击的时候,他就会获取这个注册码,去数据库查询是否有这个用户,有的话,就把用户状态改成已经激活的状态。

一些概念

邮箱账号就是邮件服务器上的一块空间,邮件服务器跟web服务器类似,我们只要安装一个服务器软件就可以作为邮件服务器,smtp发送协议,pop接收协议

邮件发送的过程

这里写图片描述

1.我是新浪的邮箱要给163的发送邮件,首先登陆新浪的客户端,连接SMTP服务器

2.写邮件

3.发送邮件,发送到163的服务器上,存到服务器的硬盘上

4.163用户登陆到客户端,通过用户名和密码连接POP3的服务器

5.收取邮件,找到邮件的位置,将邮件返回到客户端

DEMO

一、在本机上搭建邮箱服务器:(我使用的是winmail)

工具下载地址

二、安装+配置(2步:域名+用户)

这里写图片描述

这里写图片描述

三、设置Foxmail(添加账户)

这里写图片描述

四、编写代码(发邮件的工具类)

package cn.itcast.shop.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.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/** * 邮件发送工具类 * @author CD * */public class MailUtils {    /**     * 发送邮件的方法     * @param to:收件人     * @param code:激活码     */    public static void sendMail(String to,String code){        /**         * 1.获得Session对象,连接的意思         * 2.创建一个代表邮件的对象Message         * 3.发送邮件Transport         */        //1.获得连接对象        Properties props=new Properties();        props.setProperty("mail.host", "localhost");        Session session=Session.getInstance(props,new Authenticator(){            @Override            protected PasswordAuthentication getPasswordAuthentication(){                return new PasswordAuthentication("service@shop.com","111");            }        });        //2.创建邮件对象:        Message message =new MimeMessage(session);        //设置发件人        try {            message.setFrom(new InternetAddress("service@shop.com"));            //设置收件人            message.addRecipient(RecipientType.TO, new InternetAddress(to));            //抄送迷送            //设置标题            message.setSubject("来自豆瓣的激活邮件");            //设置邮件正文            message.setContent("<h1>豆瓣激活邮件,点下面链接完成激活操作!</h1><h3><a href='http://192.168.17.1:8888/shop/user_active?code="+code+"'>http://192.168.17.1:8888/shop/user_active?code="+code+"</a></h3>","text/html;charset=utf-8");        } catch (AddressException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (MessagingException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        //3.发送邮件        try {            Transport.send(message);        } catch (MessagingException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static void main(String[] args){        sendMail("aaa@shop.com","1111");    }}

五、收邮件

这里写图片描述

成功!~

0 0
原创粉丝点击