一、加入Maven依赖
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
二、通过QQ邮箱发送邮件
2-1、发送文本形式的普通邮件
package com.test;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class TestCommon_QQ {
public static void main(String[] args) throws EmailException {
SimpleEmail email = new SimpleEmail();
try {
// 发送电子邮件的邮件服务器地址
email.setHostName("smtp.qq.com");
email.setCharset("UTF-8");// 设置字符编码
// 邮箱服务器身份验证
// qq客户端授权码获取方式: https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
email.setAuthentication("你的QQ邮箱地址", "你的qq客户端授权码");
// 设置发件人邮箱(与用户名保持一致) 并且 设置发件人昵称
email.setFrom("你的QQ邮箱地址","你想设置的昵称");
// 邮件主题
email.setSubject("测试主题");
// 邮件内容
email.setMsg("hi 我是一个测试文本,请忽略!");
// 收件人地址
email.addTo("收件人的邮箱地址");
// 邮件发送
email.send();
System.out.println("邮件发送成功!");
}catch (EmailException e){
e.printStackTrace();
System.err.println("邮件发送失败!");
}
}
}
2-2、发送HTML类型的邮件
package com.test;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class TestEmail_QQ {
public static void main(String[] args) throws EmailException {
HtmlEmail email = new HtmlEmail();
try {
/**
* 使用发电子邮件的邮件服务器
* qq邮件服务器: smtp.qq.com
* 163个人版: smtp.163.com
* 163企业用户付费版: smtp.qiye.163.com
*/
email.setHostName("smtp.qq.com");
email.setCharset("UTF-8");// 设置字符编码
//邮件服务器验证:用户名/qq客户端授权码
//qq客户端授权码获取方式:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
email.setAuthentication("你的QQ邮箱地址", "你的qq客户端授权码");
// 设置发件人邮箱(与用户名保持一致) 并且 设置发件人昵称
email.setFrom("你的QQ邮箱地址","你想设置的昵称");
// 发电子邮件的邮件服务器端口号,默认是25
//email.setSmtpPort(25);
// 邮件主题
email.setSubject("测试主题");
// 邮件内容:由于使用了HtmlEmail,可以在邮件内容中使用HTML标签
email.setMsg("<h1 style='color:red'>邮件测试,</h1>" + " 请忽略!");
// 收件人地址
email.addTo("收件人的邮箱地址");
//email.addCc("");// 邮件抄送
// 邮件发送
email.send();
System.out.println("邮件发送成功!");
}catch (EmailException e){
e.printStackTrace();
System.err.println("邮件发送失败!");
}
}
}
三、通过163个人免费版邮箱发送邮件
3-1、发送文本形式的普通邮件
package com.test;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class Test163Common {
public static void main(String[] args) throws EmailException {
SimpleEmail email = new SimpleEmail();
try {
// 发送电子邮件的邮件服务器地址
email.setHostName("smtp.163.com");
email.setCharset("UTF-8");// 设置字符编码
// 邮箱服务器身份验证
email.setAuthentication("你的163邮箱地址", "你的163客户端授权码");
// 设置发件人邮箱(与用户名保持一致) 并且 设置发件人昵称
email.setFrom("你的163邮箱地址","你想设置的昵称");
// 邮件主题
email.setSubject("测试主题");
// 邮件内容
email.setMsg("hi 我是一个测试文本,请忽略!");
// 收件人地址
email.addTo("收件人的邮箱地址");
// 邮件发送
email.send();
System.out.println("邮件发送成功!");
}catch (EmailException e){
e.printStackTrace();
System.err.println("邮件发送失败!");
}
}
}
3-2、发送HTML类型的邮件
package com.test;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class Test163HtmlEmail {
public static void main(String[] args) throws EmailException {
HtmlEmail email = new HtmlEmail();
try {
/**
* 使用发电子邮件的邮件服务器
* qq邮件服务器: smtp.qq.com
* 163个人版: smtp.163.com
* 163企业用户付费版: smtp.qiye.163.com
*/
email.setHostName("smtp.163.com");
email.setCharset("UTF-8");// 设置字符编码
//邮件服务器验证:用户名/授权码
email.setAuthentication("你的163邮箱地址", "你的163客户端授权码");
// 设置发件人邮箱(与用户名保持一致) 并且 设置发件人昵称
email.setFrom("你的163邮箱地址","你想设置的昵称");
// 发电子邮件的邮件服务器端口号,默认是25
email.setSmtpPort(25);
// 邮件主题
email.setSubject("测试主题");
// 邮件内容:由于使用了HtmlEmail,可以在邮件内容中使用HTML标签
email.setMsg("<h1 style='color:red'>邮件测试,</h1>" + " 请忽略!");
// 收件人地址
email.addTo("收件人的邮箱地址");
//email.addCc("");// 邮件抄送
// 邮件发送
email.send();
System.out.println("邮件发送成功!");
}catch (EmailException e){
e.printStackTrace();
System.err.println("邮件发送失败!");
}
}
}
3-3、163客户端授权码获取步骤
(1)设置 > POP3/SMTP/IMAP
(2)开启 POP3/SMTP
(3)继续开启
(4)扫码发送短信,发完短信点击我已发送
(5)保存获取到的授权码
四、通过163企业邮箱账号发送邮件
4-1、发送文本形式的普通邮件
package com.test;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class Test163Common {
public static void main(String[] args) throws EmailException {
SimpleEmail email = new SimpleEmail();
try {
// 发送电子邮件的邮件服务器地址
email.setHostName("smtp.163.com");
email.setCharset("UTF-8");// 设置字符编码
// 邮件服务器验证:用户名/密码
email.setAuthentication("你的企业邮箱地址", "你的企业邮箱密码");
// 设置发件人邮箱(与用户名保持一致) 并且 设置发件人昵称
email.setFrom("你的企业邮箱地址","你想设置的昵称");
// 启用ssl连接
email.setSSLOnConnect(true);
// ssl对应的邮件服务器端口号
email.setSslSmtpPort("994");
// 邮件主题
email.setSubject("测试主题");
// 邮件内容
email.setMsg("hi 我是一个测试文本,请忽略!");
// 收件人地址
email.addTo("收件人的邮箱地址");
// 邮件发送
email.send();
System.out.println("邮件发送成功!");
}catch (EmailException e){
e.printStackTrace();
System.err.println("邮件发送失败!");
}
}
}
4-2、发送HTML类型的邮件
package com.test;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class Test163HtmlEmail {
public static void main(String[] args) throws EmailException {
HtmlEmail email = new HtmlEmail();
try {
/**
* 使用发电子邮件的邮件服务器
* qq邮件服务器: smtp.qq.com
* 163个人版: smtp.163.com
* 163企业用户付费版: smtp.qiye.163.com
*/
email.setHostName("smtp.163.com");
email.setCharset("UTF-8");// 设置字符编码
//邮件服务器验证:用户名/密码
email.setAuthentication("你的企业邮箱地址", "你的企业邮箱密码");
// 设置发件人邮箱(与用户名保持一致) 并且 设置发件人昵称
email.setFrom("你的企业邮箱地址","你想设置的昵称");
// 启用ssl连接
email.setSSLOnConnect(true);
// ssl对应的邮件服务器端口号
email.setSslSmtpPort("994");
// 邮件主题
email.setSubject("测试主题");
// 邮件内容:由于使用了HtmlEmail,可以在邮件内容中使用HTML标签
email.setMsg("<h1 style='color:red'>邮件测试,</h1>" + " 请忽略!");
// 收件人地址
email.addTo("收件人的邮箱地址");
//email.addCc("");// 邮件抄送
// 邮件发送
email.send();
System.out.println("邮件发送成功!");
}catch (EmailException e){
e.printStackTrace();
System.err.println("邮件发送失败!");
}
}
}