# jar包,maven
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
</dependency>
package com.example.demo;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.SimpleEmail;
import java.io.File;
import java.security.SecureRandom;
import java.util.Date;
import java.util.Random;
public class EmailUtil {
private final static String USERNAME = "******@qq.com";//自己注册的发件人邮箱
private final static String PASSWORD = "*********"; // POP3/SMTP服务授权码
private final static String ADDRESS = "smtp.qq.com"; //qq邮箱固定名称
private final static Integer PORT = 587; //邮箱端口为465/587
// private final static String USERNAME = "**********@163.com";
// private final static String ADDRESS = "smtp.163.com";
// private final static String PASSWORD = "***********";
// private final static Integer PORT = 25;
/**
* 随机对象
*/
private static final Random RANDOM = new SecureRandom();
private static final String NUMBER = "0123456789";
private final static String CHARSET = "UTF8";
/**
* 发送邮件给指定人,需要HTML内容
* @param user
* @param title
*/
public static void sendHtmlMail(String user, String title){
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setCharset(CHARSET);
htmlEmail.setHostName(ADDRESS);
htmlEmail.setSmtpPort(PORT);
htmlEmail.setAuthentication(USERNAME, PASSWORD);
try {
htmlEmail.setFrom(USERNAME);
htmlEmail.addTo(user);
htmlEmail.setSubject(title);
String cid = htmlEmail.embed(new File("图片全路径"));
htmlEmail.setHtmlMsg("<div style='color:red;font-size:200px'>HTML内容</div> <img src='cid:" + cid + "' />");
htmlEmail.send();
} catch (EmailException e) {
e.printStackTrace();
}
}
/**
* 发送邮件给指定人,需要主题和内容
* @param user
* @param title
* @param content
*/
public static void sendSimpleMail(String user, String title, String content) {
SimpleEmail email = new SimpleEmail();
email.setCharset(CHARSET);
email.setHostName(ADDRESS);
email.setSmtpPort(PORT);
email.setAuthentication(USERNAME, PASSWORD);
try {
email.setFrom(USERNAME);
email.addTo(user);
email.setSubject(title);
email.setMsg(content);
email.send();
} catch (EmailException e) {
e.printStackTrace();
}
}
/**
* 六位数验证码
*/
public static String randSendCode(){
char[] nonceChars = new char[6];
for (int index = 0; index < nonceChars.length; ++index) {
nonceChars[index] = NUMBER.charAt(RANDOM.nextInt(10));
}
return new String(nonceChars);
}
/**
* 发送验证邮件给用户
* @param user
* @param code
*/
public static void sendValidateMail(String user, String code) {
String title = "注册验证码";
String content = "感谢您注册,您的验证码为 \n" + code + "\n请注意保存,此验证码有效期为 10分钟 。";
sendSimpleMail(user, title, content);
}
public static void main(String[] args) {
// 接收人有限,不限邮箱平台,QQ,网易,谷歌邮箱都可以
//String to = "******@qq.com";
//收件人和消息
//sendValidateMail(to, randSendCode());
//sendHtmlMail(to,"活动促销");
}
}
关于授权码如何获取,请各位百度搜索了
以下是SMTP各个邮件服务平台的端口号和服务HOST
请参考:https://blog.youkuaiyun.com/hssdw25172008/article/details/8729469
各个邮件服务SMTP地址和端口号