邮箱验证账号登录 Java

我就是我 2022-05-25 05:48 348阅读 0赞

一、需求

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

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

1.创建Session

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

2.通过session得到transport对象

  1. Transport ts=session.getTransport();

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

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

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

  1. 1)在https://mail.qq.com/登录上你的qq
  2. 2)点击右上角的设置
  3. ![70][]
  4. 3)点击邮箱设置里面的账户
  5. ![70 1][]
  6. 4)往下翻,会有一个**POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,默认是关闭的,开启就行了**

70 2

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

4.创建邮件

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

5.发送邮件

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

三、具体工具类

  1. public class MailUtils {
  2. public static boolean sendEmail(String fromEmail,String toEmail, String emailMsg) throws MessagingException{
  3. Properties prop=new Properties();
  4. prop.setProperty("mail.host", "stmp.qq.com");
  5. prop.setProperty("mail.transport.protocol", "smtp");
  6. prop.setProperty("mail.smtp.auth", "true");
  7. //使用javaMail发送邮件的5个步骤
  8. //创建session
  9. Session session=Session.getInstance(prop);
  10. //2.通过session得到transport对象
  11. Transport ts=session.getTransport();
  12. //3.使用邮箱的用户名和密码链接上邮件服务器,发送邮件时,发送人需要提交邮箱的用户名和密码(授权码)给smtp服务器,用户名和密码都通过验证之后
  13. //才能够正常发送邮件给收件人,QQ邮箱需要使用SSL,端口号465或587 ts.connect("smtp.qq.com",587,"QQ号","授权码");
  14. ts.connect("smtp.qq.com",587,"发送者的qq号,去掉@qq.com","授权码");
  15. //4、创建邮件
  16. Message message;
  17. try {
  18. message = createSimpleMail(fromEmail,toEmail,emailMsg,session);
  19. //5、发送邮件
  20. ts.sendMessage(message,message.getAllRecipients());
  21. } catch (Exception e) {
  22. // TODO Auto-generated catch block
  23. e.printStackTrace();
  24. }
  25. ts.close();
  26. return true;
  27. }
  28. /**
  29. * 创建邮件
  30. */
  31. public static Message createSimpleMail(String fromEmail,String toEmail,String emailMsg,Session session) throws AddressException, MessagingException{
  32. //创建邮件
  33. MimeMessage message=new MimeMessage(session);
  34. //指明邮件的发送人
  35. message.setFrom(new InternetAddress(fromEmail));
  36. //指明收件人
  37. message.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
  38. //设置邮件的标题
  39. message.setSubject("用户激活");
  40. //设置邮件的内容
  41. message.setContent(emailMsg,"text/html;charset=UTF-8");
  42. //返回创建好的邮件对象
  43. return message;
  44. }
  45. /**
  46. * 邮箱发送测试
  47. * @param args
  48. * @throws MessagingException
  49. * @throws AddressException
  50. */
  51. @Test
  52. public void testSendMail() throws AddressException, MessagingException{
  53. sendEmail("发送者的qq号","接受者的qq号");
  54. }
  55. }

发表评论

表情:
评论列表 (有 0 条评论,348人围观)

还没有评论,来说两句吧...

相关阅读

    相关 邮箱验证账号登录 Java

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