javaMail发送邮件激活注册用户

做用户注册模块,javaMail实现用户激活,本以为不怎么费力,结果在做的过程中遇到些问题,分享一下

~1javaMAil  发邮件需要导入两个包,mail.jar和activation.jar  ,直接引入到lib下



~2邮件发送者必须开通POP3/IMAP/SMTP 服务(开始没注意这个问题,浪费一些时间)




~3个人使用的springmvc+mybatis     SendMail  实现如下
package com.spring.util;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail {
	 /**
	      * @param args
	      * @throws Exception 
	      */
     public static void sendEmail(String recEmail,String url) throws Exception {
	         
	        Properties prop = new Properties();
	         prop.setProperty("mail.host", "smtp.qq.com");
	         prop.setProperty("mail.transport.protocol", "smtp");
	         prop.setProperty("mail.smtp.auth", "true");
	         //使用JavaMail发送邮件的5个步骤
	         //1、创建session
	        Session session = Session.getInstance(prop);
	         //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
	         session.setDebug(true);
	         //2、通过session得到transport对象
	         Transport ts = session.getTransport();
	         //3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
	         ts.connect("smtp.qq.com", "邮箱账户", "邮箱密码");
	        //4、创建邮件
	         Message message = createSimpleMail(recEmail,url,session);
	         //5、发送邮件
	        ts.sendMessage(message, message.getAllRecipients());
	         ts.close();
	     }
     
	     public static MimeMessage createSimpleMail(String receiverEmail,String url,Session session)
	             throws Exception {
	         //创建邮件对象
	         MimeMessage message = new MimeMessage(session);
	         //指明邮件的发件人
	         message.setFrom(new InternetAddress("******@qq.com"));
	         //指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
	         message.setRecipient(Message.RecipientType.TO, new InternetAddress(receiverEmail));
	         //邮件的标题
	         message.setSubject("邮件验证");
	         //邮件的文本内容
	         message.setContent("点击下面的地址完成激活"+"<br/>"+"<a href='"+url+"'>"+url+"</a>", "text/html;charset=UTF-8");
	         //返回创建好的邮件对象
	         return message;
	     }
	 }


~4用户注册,模块,个人思想是注册后先把基本信息存入数据库,设置state字段验证是否激活
/**
	 * 用户注册模块
	 * @param email
	 * @param password
	 * @param username
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/reg",method=RequestMethod.POST)
	public String reg(String email,String password,String username,Model model,HttpServletRequest request){
		System.out.println("用户注册");
		User u=new User(username,email,password);
		//添加一个用户的基本信息,但是不进行激活
		userService.addUserCommon(u);
		//查找刚刚添加进去的用户的信息
		User userInfo=userService.getUserByEmail(email);
		
		//根据自己需要自行修改
		String url="http://localhost:8080/cainiao/FinshReg?RegId=" + userInfo.getId();
		
		/**
		 * 发送邮件
		 */
		SendMail send=new SendMail();
		try {
			send.sendEmail(email,url);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "redirect:/user/regMailSendSuccess";
	}
		



~5点击邮箱链接完成注册
/**
		 * 将用户信息激活,完成注册
		 * @return
		 */
	   @RequestMapping(value="/FinshReg")
		public String FinshReg(String RegId){
		   int regId=Integer.parseInt(RegId);
		   userService.updateRegUser(regId);
		   System.out.println("用户已经激活");
		   return "user/index";
		}


附带所需jar包下载链接,,,希望多多支持
http://download.csdn.net/detail/stevejobson/9194385

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值