JAVA 实现发送邮件功能 您所在的位置:网站首页 139邮箱怎么收邮件验证码 JAVA 实现发送邮件功能

JAVA 实现发送邮件功能

2023-06-17 07:37| 来源: 网络整理| 查看: 265

JAVA 实现发送邮件功能——邮箱验证码

在学习 Java 的过程中,由于项目需要使用邮箱验证码功能,所以进行了较为深入的学习,在这里写一下这个功能的实现方式。

首先

想要使用 Java 实现发送邮件的功能就需要先去对应的邮箱开启 POP3/IMAP 或者 SMTP/IMAP 服务。 这里使用163邮箱来举例,附上163邮箱的POP3/SMTP/IMAP服务介绍

进入邮箱后点击设置,找到并点击 POP3/SMTP/IMAP 打开设置 点开后开启 POP3/IMAP服务 或者 SMTP/IMAP服务 ,这里我全部开启了 开启服务 开启后会出现一个弹窗,上面显示的是你个人的授权密码,这个密码一定要立刻保存!!!且不能泄露出去!有了这个授权密码就可以对这个邮箱进行第三方操作,如若发现邮箱出现未知操作后一定要尽快删除这个授权码 在这里插入图片描述 至此,邮箱方面的操作便结束了。

然后 在 Java 中添加如下代码 在 Maven 中添加如下两个依赖

javax.mail javax.mail-api 1.5.6 com.sun.mail javax.mail 1.5.3

接着添加对应的发送邮件工具类 MailUtils,标注※的地方进行填写或更改即可:

package utils; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * 发邮件工具类 */ public final class MailUtils { private static final String USER = "[email protected]"; // 发件人称号,同邮箱地址※ private static final String PASSWORD = "xxxxxxxxx"; // 授权码,开启SMTP时显示※ /** * * @param to 收件人邮箱 * @param text 邮件正文 * @param title 标题 */ /* 发送验证信息的邮件 */ public static boolean sendMail(String to, String text, String title){ try { final Properties props = new Properties(); props.put("mail.smtp.auth", "true"); // 注意发送邮件的方法中,发送给谁的,发送给对应的app,※ // 要改成对应的app。扣扣的改成qq的,网易的要改成网易的。※ // props.put("mail.smtp.host", "smtp.qq.com"); props.put("mail.smtp.host", "smtp.163.com"); // 发件人的账号 props.put("mail.user", USER); //发件人的密码 props.put("mail.password", PASSWORD); // 构建授权信息,用于进行SMTP进行身份验证 Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { // 用户名、密码 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用环境属性和授权信息,创建邮件会话 Session mailSession = Session.getInstance(props, authenticator); // 创建邮件消息 MimeMessage message = new MimeMessage(mailSession); // 设置发件人 String username = props.getProperty("mail.user"); InternetAddress form = new InternetAddress(username); message.setFrom(form); // 设置收件人 InternetAddress toAddress = new InternetAddress(to); message.setRecipient(Message.RecipientType.TO, toAddress); // 设置邮件标题 message.setSubject(title); // 设置邮件的内容体 message.setContent(text, "text/html;charset=UTF-8"); // 发送邮件 Transport.send(message); return true; }catch (Exception e){ e.printStackTrace(); } return false; } public static void main(String[] args) throws Exception { // 做测试用 MailUtils.sendMail("[email protected]","你好,这是一封测试邮件,无需回复。","测试邮件");//填写接收邮箱※ System.out.println("发送成功"); } }

至于验证码,这个可以再去看看别人的博客,挺简单的,我这个项目是使用UUID解决,就不再在这里赘述了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有