版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LDY1016/article/details/83505664
1、在pom.xml中添加maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、在application.properties文件中添加邮件相关配置
#邮件配置
spring.mail.host=邮件服务器地址
spring.mail.username=用户名
spring.mail.password=密码
spring.mail.default-encoding=UTF-8
#登录服务器是否需要认证
spring.mail.properties.mail.smtp.auth=true
#SSL证书Socket工厂
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
#使用SMTPS协议465端口
spring.mail.properties.mail.smtp.socketFactory.port=465
#显示在收件人邮箱里面的发件人名称
spring.mail.self.username=用户名
3、编写邮件发送代码:MailSendService.java
package com.ldy.bootv2.demo.service;
import java.io.File;
import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
/**
* @类名: MailSender<br>
* @描述: 邮件发送<br>
*/
@Service
public class MailSendService {
@Autowired
JavaMailSender mailSender;
//发件人名称设置
@Value("${spring.mail.self.username}")
private String sendUser;
public void sendEmail(String toMail, String title, String content) throws MessagingException {
final MimeMessage mimeMessage = mailSender.createMimeMessage();
final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setFrom(sendUser);
message.setTo(toMail);
message.setSubject(title);
message.setText(content);
mailSender.send(mimeMessage);
}
/**
* @方法名: sendSimpleMail<br>
* @描述: 发送普通文本格式的邮件<br>
* @param toMail 收件人,多个用英文格式逗号分隔
* @param replyTo 抄送人,多个用英文格式逗号分隔
* @param title 邮件主题
* @param content 邮件内容
* @param flies 附件
* @throws Exception
*/
public void sendSimpleMail(String toMail, String replyTo, String title, String content, List<File> files) throws Exception {
final MimeMessage mimeMessage = mailSender.createMimeMessage();
final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(sendUser);
helper.setSubject(title);
helper.setText(content);
//设置多个收件人
String[] toAddress = toMail.split(",");
helper.setTo(toAddress);
//设置多个抄送
if(!StringUtils.isEmpty(replyTo)) {
//helper.setReplyTo(replyTo);
InternetAddress[] internetAddressCC = InternetAddress.parse(replyTo);
mimeMessage.setReplyTo(internetAddressCC);
}
//添加附件
if(null != files) {
for (File file : files) {
helper.addAttachment(file.getName(), file);
}
}
mailSender.send(mimeMessage);
}
/**
* @方法名: sendHtmlMail<br>
* @描述: 发送HTML格式的邮件<br>
* @param toMail 收件人,多个用英文格式逗号分隔
* @param replyTo 抄送人,多个用英文格式逗号分隔
* @param title 邮件主题
* @param htmlContent 邮件内容
* @param files 附件
* @throws Exception
*/
public void sendHtmlMail(String toMail, String replyTo, String title, String htmlContent, List<File> files) throws Exception {
final MimeMessage mimeMessage = mailSender.createMimeMessage();
final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(sendUser);
helper.setSubject(title);
helper.setText(htmlContent, true);
//设置多个收件人
String[] toAddress = toMail.split(",");
helper.setTo(toAddress);
//设置多个抄送
if(!StringUtils.isEmpty(replyTo)) {
//helper.setReplyTo(replyTo);
InternetAddress[] internetAddressCC = InternetAddress.parse(replyTo);
mimeMessage.setRecipients(RecipientType.CC,internetAddressCC);
}
//添加附件
if(null != files) {
for (File file : files) {
helper.addAttachment(file.getName(), file);
}
}
mailSender.send(mimeMessage);
}
}
完成上面的代码后,在发送邮件的java类里面注入MailSendService,直接调用对应的方法即可