网上商城之用户注册发送邮件激活
来源:互联网 发布:4g网络平板电脑 编辑:程序博客网 时间:2024/04/29 16:51
承接上篇博客,小乖讲述了网上商城的注册过程,用户可以注册账号到数据库中,下面就是如何激活新注册的账号了。我们平时都有自己的邮箱,而且小乖一直在用foxmail客户端软件来收取邮件。当我们发送一封邮件的时候,首先要知道收件人地址,那下面我们就来看一下邮件发送的全过程:
而收邮件正好是一个相反的过程。接下来我们要自己搭建一个邮箱服务器。首先安装邮箱服务器软件eyoumail,修改域名为shop.com,同时新建一个我们的服务器邮箱和几个账号。
客户端软件就用户我们平时常用的foxmail或者outlook,配置发送和接收邮箱服务器为localhost。
接下来,我们就可以代码实现发送邮件了
一、发送邮件
新建一个工具类,发送邮件的方法
/** * 发送邮件的方法 * @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("MailUitls.host", "localhost");Session session = Session.getInstance(props,new Authenticator() {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));//抄送CC 密送BCC//设置标题message.setSubject("来自购物天堂小乖商城官方激活邮件");//设置邮件正文message.setContent("<h1>购物天堂小乖商城官方激活邮件!点下面链接完成激活操作!</h1><h3><a href='http://localhost:8080/shop/user_active.action?code="+code+"'>http://localhost:8080/shop/user_active.action?code="+code+"</a></h3>", "text/html;charset=UTF-8");//3.发送邮件:Transport.send(message);} catch (AddressException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}}
在service层中调用发送邮件的方法
//业务层完成用户注册代码:public void save(User user) {//将数据存入到数据库user.setState(0); //0:代表用户未激活。 1:代表用户已经激活//调用工具类来生成随机字符String code=UUIDUtils.getUUID()+UUIDUtils.getUUID();user.setCode(code);userDao.save(user);//发送激活邮件;MailUitls.sendMail(user.getEmail(), code);}
到此为止,注册一个新用户邮件就发到新用户的邮箱了。
二、用户激活:
1.在邮箱客户端中点击激活链接:
根据传递激活码进行用户查询
action激活方法
public String active(){//根据激活码查询用户User existUser=userService.findByCode(user.getCode());//判断if(existUser == null){//激活码是错误的this.addActionMessage("激活失败:激活码错误!");} else {//激活成功//修改用户的状态existUser.setState(1);existUser.setCode(null);userService.update(existUser);this.addActionMessage("激活成功!:请去登录");}return "msg";}
service层方法findByCode
//业务层根据激活码查询用户public User findByCode(String code) {return userDao.FindByCode(code);}//修改用户状态的方法public void update(User existUser) {userDao.update(existUser);}
Dao层激活方法
public User FindByCode(String code){String hql="from User where code = ?";List<User> list=this.getHibernateTemplate().find(hql,code);if(list != null && list.size()>0){return list.get(0);}return null;}//修改用户状态的方法public void update(User existUser) {this.getHibernateTemplate().update(existUser);}
总结:
网上商城跟着到这一步,小编终于是明白了一些网站注册之后的激活邮件是怎么做出来的了。虽然注册完之后这些邮件都当做垃圾拖进垃圾箱。当你注册并激活了小乖的网站内心表示还蛮激动的。当然啦,现在只是在自己的电脑上测试,所以一些重定向啊之类的都还是localhost呢。我想作为一个网站运营商可以通过激活邮件的用户的多少来查询每天有多少用户注册了吧,不过数据库可以直接显示的,或者网站后台应该会有这样的功能,小乖想多了!那就当做一个验证身份的过程把!
- 网上商城之用户注册发送邮件激活
- SSH网上商城(一)---用户注册激活邮件
- [SSH网上商城]发送激活邮件
- javaMail发送邮件激活注册用户
- SSH网上商城之实现邮件激活用户账户功能
- 注册发送激活邮件
- ASP.NET MVC通过发送邮件激活注册用户
- SSH网上商城之用户注册
- .NET实现注册发送邮件激活账户
- SSH网上商城---邮件发送
- 实现用户注册时,向其油箱发送激活码邮件,并进行状态处理
- 实现用户注册时,向其油箱发送激活码邮件,并进行状态处理
- 演示账号激活的过程:注册——>向指定邮箱发送邮件——>用户登录邮箱,激活账号
- java 实现注册时发送激活邮件+激活
- java 实现注册时发送激活邮件+激活
- java 实现注册时发送激活邮件并激活
- java 实现注册时发送激活邮件+激活
- 用户激活和找回密码发送邮件
- Vmware安装CentOS
- 矩阵乘法(摆花)
- java 反射方式访问私有属性和方法
- 二叉树的非递归遍历
- poj 1961 Period(kmp)
- 网上商城之用户注册发送邮件激活
- Android网格布局的简单使用
- 【codevs3110】一把鼻涕一把泪的堆排序
- git 打标签操作
- 【零基础】CentOS 7 64位系统下编译Hadoop2.7.0
- c++友元
- SpringMVC+Hbernate+Spring简单使用
- hdu 1950 Bridging signals【LIS nlogn】
- 拼接数组