邮箱验证账号登录 Java

一、需求

   当我们想让我们的网站消除恶意注册的情况,我们可以这样做,通过邮箱验证,这样又可以很好的表现出网站的正规性,所以我们在这里提供一个邮箱验证的工具类,先简单说一下步骤,然后再提供完整的工具类

二、工具类的步骤(5个)

   1.创建Session

Properties prop=new Properties();
prop.setProperty("mail.host", "stmp.qq.com");
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true");
Session session=Session.getInstance(prop);

   2.通过session得到transport对象

Transport ts=session.getTransport();

  3.使用邮箱的用户名和密码链接上邮件服务器,发送邮件时,发送人需要提交邮箱的用户名和密码(授权码)给smtp服务器,用户名和密码都通过验证之后

ts.connect("smtp.qq.com",587,"QQ号","授权码");  

   注:这里要重点说一下,授权码不是qq密码,这个可以通过以下方式获取

     (1)在https://mail.qq.com/登录上你的qq

     (2)点击右上角的设置

    


     (3)点击邮箱设置里面的账户

      

    (4)往下翻,会有一个POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,默认是关闭的,开启就行了

      

    (5)开启之后会得到一个授权码

 4.创建邮件  

Message message = createSimpleMail(fromEmail,toEmail,emailMsg,session); 
public static Message createSimpleMail(String fromEmail,String toEmail,String emailMsg,Session session) throws AddressException, MessagingException{
		//创建邮件
		MimeMessage message=new MimeMessage(session);
		//指明邮件的发送人
		message.setFrom(new InternetAddress(fromEmail));
		//指明收件人
		message.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
		//设置邮件的标题
		message.setSubject("用户激活");
		//设置邮件的内容
		message.setContent(emailMsg,"text/html;charset=UTF-8");
		//返回创建好的邮件对象  
		return message;  
}

 5.发送邮件

ts.sendMessage(message,message.getAllRecipients());

三、具体工具类

public class MailUtils {
	public static boolean sendEmail(String fromEmail,String toEmail, String emailMsg) throws MessagingException{
		Properties prop=new Properties();
		prop.setProperty("mail.host", "stmp.qq.com");
		prop.setProperty("mail.transport.protocol", "smtp");
		prop.setProperty("mail.smtp.auth", "true");
		//使用javaMail发送邮件的5个步骤
		//创建session
		Session session=Session.getInstance(prop);
		//2.通过session得到transport对象
		Transport ts=session.getTransport();
		//3.使用邮箱的用户名和密码链接上邮件服务器,发送邮件时,发送人需要提交邮箱的用户名和密码(授权码)给smtp服务器,用户名和密码都通过验证之后
		//才能够正常发送邮件给收件人,QQ邮箱需要使用SSL,端口号465或587       ts.connect("smtp.qq.com",587,"QQ号","授权码");  
		ts.connect("smtp.qq.com",587,"发送者的qq号,去掉@qq.com","授权码");  
		//4、创建邮件  
		Message message;  
		try {  
		message = createSimpleMail(fromEmail,toEmail,emailMsg,session);  
		//5、发送邮件  
		ts.sendMessage(message,message.getAllRecipients());  
		} catch (Exception e) {  
		// TODO Auto-generated catch block  
		e.printStackTrace();  
		}  
		ts.close();  
		return true;
		}
		/**
		* 创建邮件
		*/
		public static Message createSimpleMail(String fromEmail,String toEmail,String emailMsg,Session session) throws AddressException, MessagingException{
		//创建邮件
		MimeMessage message=new MimeMessage(session);
		//指明邮件的发送人
		message.setFrom(new InternetAddress(fromEmail));
		//指明收件人
		message.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
		//设置邮件的标题
		message.setSubject("用户激活");
		//设置邮件的内容
		message.setContent(emailMsg,"text/html;charset=UTF-8");
		//返回创建好的邮件对象  
		return message;  
		}
	/**
	 * 邮箱发送测试
	 * @param args
	 * @throws MessagingException 
	 * @throws AddressException 
	 */
	@Test
	public void testSendMail() throws AddressException, MessagingException{
		
		sendEmail("发送者的qq号","接受者的qq号");
		
		
	}
}

猜你喜欢

转载自blog.csdn.net/JavaWeb_Hao/article/details/80249055