java项目对接邮箱
1.首先开启邮箱SMTP服务
参考https://blog.csdn.net/m0_46987952/article/details/128129332 博主。
2.java代码
2.1 maven配置
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.4</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
2.2 示例
package com.sxing.testapi;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailHelper {
public MailHelper() {
}
public static void main(String[] args) {
sendMail("smtp.163.com", 465, (Boolean)null, "XXXXXXXXXXX@163.com", "XXXXXXXX(开通的授权码,不是登录的密码)", "2904849189@qq.com", (String)null, (String)null, "测试邮件", "测试邮件");
}
/**
*
* @param smtp_server smtp 服务器
* @param smtp_post SSL端口号
* @param isAuth 是否鉴权
* @param sendMail 发送者的邮箱
* @param sendPwd 此处填写开通的授权码 不是登录邮箱的密码
* @param addressee 接收者的邮箱
* @param ccmail
* @param bccmail
* @param mailTitle 邮件标题
* @param mailContent 邮件内容
*/
public static void sendMail(String smtp_server, Integer smtp_post, Boolean isAuth, String sendMail, String sendPwd, String addressee, String ccmail, String bccmail, String mailTitle, String mailContent) {
if (StringUtils.isBlank(smtp_server)) {
//throw new ServiceException("参数错误:SMTP服务器地址不能为空");
} else if (StringUtils.isBlank(sendMail)) {
//throw new ServiceException("参数错误:发件人不能为空");
System.out.println("参数错误:发件人不能为空");
} else if (StringUtils.isBlank(addressee)) {
//throw new ServiceException("参数错误:收件人不能为空");
System.out.println("参数错误:收件人不能为空");
} else if (StringUtils.isBlank(mailTitle)) {
//throw new ServiceException("参数错误:邮件名称不能为空");
System.out.println("参数错误:邮件名称不能为空");
} else if (StringUtils.isBlank(mailContent)) {
//throw new ServiceException("参数错误:邮件内容不能为空");
System.out.println("参数错误:邮件内容不能为空");
} else {
final Properties props = new Properties();
props.put("mail.smtp.host", smtp_server);
if (isAuth == null) {
isAuth = true;
}
if (isAuth) {
System.out.println("启用身份验证");
props.put("mail.smtp.auth", isAuth);
props.put("mail.user", sendMail);
props.put("mail.password", sendPwd);
}
if (smtp_post != null) {
System.out.println("启用SSL验证");
props.put("mail.smtp.starttls.enable", true);
props.put("mail.smtp.socketFactory.port", smtp_post);
props.put("mail.smtp.protocol", "smtps");
props.put("mail.smtp.ssl.trust", smtp_server);
}
Authenticator authenticator = new Authenticator() {
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);
try {
InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
message.setFrom(form);
InternetAddress to = new InternetAddress(addressee);
message.setRecipient(RecipientType.TO, to);
String[] strbcc;
ArrayList bccList;
String[] var18;
int var19;
int var20;
String str;
if (StringUtils.isNotBlank(addressee)) {
strbcc = addressee.split(";");
if (strbcc != null && strbcc.length > 0) {
bccList = new ArrayList();
var18 = strbcc;
var19 = strbcc.length;
for(var20 = 0; var20 < var19; ++var20) {
str = var18[var20];
bccList.add(new InternetAddress(str));
}
message.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, (Address[])bccList.toArray(new InternetAddress[bccList.size()]));
}
}
if (StringUtils.isNotBlank(ccmail)) {
strbcc = ccmail.split(";");
if (strbcc != null && strbcc.length > 0) {
bccList = new ArrayList();
var18 = strbcc;
var19 = strbcc.length;
for(var20 = 0; var20 < var19; ++var20) {
str = var18[var20];
bccList.add(new InternetAddress(str));
}
message.setRecipients(javax.mail.internet.MimeMessage.RecipientType.CC, (Address[])bccList.toArray(new InternetAddress[bccList.size()]));
}
}
if (StringUtils.isNotBlank(bccmail)) {
strbcc = bccmail.split(";");
if (strbcc != null && strbcc.length > 0) {
bccList = new ArrayList();
var18 = strbcc;
var19 = strbcc.length;
for(var20 = 0; var20 < var19; ++var20) {
str = var18[var20];
bccList.add(new InternetAddress(str));
}
message.setRecipients(javax.mail.internet.MimeMessage.RecipientType.BCC, (Address[])bccList.toArray(new InternetAddress[bccList.size()]));
}
}
message.setSubject(mailTitle);
message.setContent(mailContent, "text/html;charset=UTF-8");
Transport.send(message);
} catch (AddressException var22) {
//throw new ServiceException("系统错误:" + var22.getMessage(), var22);
System.out.println("系统错误1:" + var22.getMessage());
} catch (MessagingException var23) {
// throw new ServiceException("系统错误:" + var23.getMessage(), var23);
System.out.println("系统错误2:" + var23.getMessage());
}
}
}
}