依赖
//maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
java集成邮箱工具类
package cn.byang.message;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.List;
import java.util.Properties;
public class MailUtils {
private String sendFrom ="xxx" ;
private JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
/**
* 工具方法:发送SSL邮件
* @param subject 邮件标题
* @param text 邮件内容 支持html标签
* @param to 收件人
* @param files 附件文件对象集合
*/
@Async("taskExecutor")
public void sendSSLMail(String subject, String text, String to, List<File> files){
try {
Properties properties = System.getProperties();
//使用465端口和25端口就只有配置文件不一样
properties.put("mail.smtp.socketFactory.class", "cn.qpyl.message.MailSocketFactory");
properties.put("mail.smtp.port", "465");
properties.put("mail.smtp.socketFactory.port", "465");
properties.put("mail.smtp.host", "xxx");
properties.put("mail.smtp.auth", "true");
properties.put("mail.user", "xxx");
properties.put("mail.password", "xxx");
//smtp邮箱需要验证
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
String userName = properties.getProperty("mail.user");
String password = properties.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
Session session = Session.getDefaultInstance(properties, authenticator);
javaMailSender.setJavaMailProperties(properties);
javaMailSender.setSession(session);
//创建复杂邮件对象
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//发送复杂邮件的工具类
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
helper.setFrom(sendFrom);
helper.setSubject(subject);
helper.setText(text,true);
//添加附件
if(files != null && files.size() > 0){
files.forEach(file -> {
try {
helper.addAttachment(file.getName(), file);
} catch (MessagingException e) {
e.printStackTrace();
}
});
}
//收件人
helper.setTo(to);
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
/**
* 工具方法:发送复杂邮件
* @param subject 邮件标题
* @param text 邮件内容 支持html标签
* @param to 收件人
* @param files 附件文件对象集合
*/
@Async("taskExecutor")
public void sendComplexMail(String subject, String text, String to, List<File> files) {
try {
javaMailSender.setHost("xxx");
javaMailSender.setUsername("xxx");
javaMailSender.setPassword("xxx");
//创建复杂邮件对象
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//发送复杂邮件的工具类
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
helper.setFrom(sendFrom);
helper.setSubject(subject);
helper.setText(text,true);
//添加附件
if(files != null && files.size() > 0){
files.forEach(file -> {
try {
helper.addAttachment(file.getName(), file);
} catch (MessagingException e) {
e.printStackTrace();
}
});
}
//收件人
helper.setTo(to);
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}