900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > JAVA 实现发送邮件功能——邮箱验证码

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

时间:2020-10-15 14:09:30

相关推荐

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

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

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

首先

想要使用 Java 实现发送邮件的功能就需要先去对应的邮箱开启POP3/IMAP或者SMTP/IMAP服务。

这里使用163邮箱来举例,附上163邮箱的POP3/SMTP/IMAP服务介绍

进入邮箱后点击设置,找到并点击POP3/SMTP/IMAP

点开后开启POP3/IMAP服务或者SMTP/IMAP服务,这里我全部开启了

开启后会出现一个弹窗,上面显示的是你个人的授权密码,这个密码一定要立刻保存!!!且不能泄露出去!有了这个授权密码就可以对这个邮箱进行第三方操作,如若发现邮箱出现未知操作后一定要尽快删除这个授权码

至此,邮箱方面的操作便结束了。

然后

在 Java 中添加如下代码

在 Maven 中添加如下两个依赖

<!--javaMail--><dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.5.6</version></dependency><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.5.3</version></dependency>

接着添加对应的发送邮件工具类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 = "xxxxxxxxx@.com"; // 发件人称号,同邮箱地址※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", "");props.put("mail.smtp.host", "");// 发件人的账号props.put("mail.user", USER);//发件人的密码props.put("mail.password", PASSWORD);// 构建授权信息,用于进行SMTP进行身份验证Authenticator authenticator = new Authenticator() {@Overrideprotected 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("xxxxxx@","你好,这是一封测试邮件,无需回复。","测试邮件");//填写接收邮箱※System.out.println("发送成功");}}

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。