前期准备
1.登陆你需要发送邮件的服务器 开启POP3/SMTP/IMAP 服务 此处我以网易邮箱为例

登陆

开启
2.在开启的时候,会让你输入一个授权码 此时需要验证你自己的账户信息

验证账户信息
3.然后会有一个弹出的界面 会让你添加自己设定的授权码 此处我不截图了
代码编写
1.我使用maven项目搭建 第一步导入依赖
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
2.编写工具类代码
package cn.icanci.utils;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import java.util.Random;
/**
* @Author: icanci
* @ProjectName: null
* @PackageName: cn.icanci.utils
* @Date: Created in 2020/2/20 13:55
* @ClassAction: 发送邮件
*/
public class SendEmailBy163Com{
/**
* 生成6位数 验证
*
* @return
*/
public static String getRandomCode() {
String code = "";
Random rd = new Random();
for (int i = 0; i < 6; i++) {
// 每次随机出一个数字(0-9)
int r = rd.nextInt(10);
// 把每次随机出的数字拼在一起
code = code + r;
}
System.out.println(code);
return code;
}
/**
* 向邮件发送验证码
*
* @param email 需要发送的邮箱地址
* @param randomCode 需要发送的code值
*/
public static void sendEmail(String email, String randomCode) {
String sendMessage = "登陆";
// 创建一个HtmlEmail实例对象
HtmlEmail send = new HtmlEmail();
// 获取随机验证码
String resultCode = randomCode;
sendMessage = "注册";
try {
send.setHostName("smtp.163.com");
// 第一个参数是发送者的QQEmail邮箱 第二个参数是刚刚获取的授权码
send.setAuthentication("icanci@163.com", "grsfasdfdafweasfd");
// 发送人的邮箱为自己的,用户名可以随便填 记得是自己的邮箱不是qq
send.setFrom("icanci@163.com", "璨詞文化");
// 端口号 必须开 587
send.setSmtpPort(587);
// 开启SSL加密
send.setSSLOnConnect(true);
//设置编码
send.setCharset("utf-8");
// 设置收件人 email为你要发送给谁的邮箱账户 上方参数
send.addTo(email);
// 邮箱标题
send.setSubject("欢迎" + sendMessage + " www.jwebblog.icanci.cn 官网");
// Email发送的内容
send.setMsg("【璨詞文化】你正在" + sendMessage + " <a href='http://www.jwebblog.icanci.cn/'>www.jwebblog.icanci.cn</a> 官网,验证码: " + resultCode
+ " 验证码十分钟之内有效。 转发可能导致帐号被盗。如果这不是你本人操作请忽略...");
// 发送
send.send();
System.out.println("发送成功");
} catch (EmailException e) {
e.printStackTrace();
}
}
}
3.测试
发送者

发送者
接收者

接收者
这个时候,邮箱是有连接的 因为设置了如下代码
send.setMsg("【璨詞文化】你正在" + sendMessage + " <a href='http://www.jwebblog.icanci.cn/'>www.jwebblog.icanci.cn</a> 官网,验证码: " + resultCode
+ " 验证码十分钟之内有效。 转发可能导致帐号被盗。如果这不是你本人操作请忽略...");