一.进入邮箱官网获取邮箱授权码,导入maven依赖
<!--对邮件的支持jar-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
二.发送邮件工具类自己封装,百度也有,可发送简单和复杂邮件
1.配置yml
spring:
mail:
host: smtp.qq.com # 设置邮箱主机(服务商),这里使用QQ邮件服务器
username: # 设置用户名 - 发送方
password: # 设置密码,该处的密码是QQ邮箱开启SMTP的授权码而非QQ密码
properties:
mail:
smtp:
auth: true # 必须进行授权认证,它的目的就是阻止他人任意乱发邮件
starttls: #SMTP加密方式:连接到一个TLS保护连接
enable: true
required: true
2.没有交给springIOC管理的
package com.lzc.basic.utils;
import cn.hutool.extra.spring.SpringUtil;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;public class EmailUtil {
private static final String FROM = "1298266265@qq.com";
private static final JavaMailSender javaMailSender = SpringUtil.getBean(JavaMailSender.class);
private EmailUtil() {
}
public static MimeMessageHelper getHelper(){
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
helper.setFrom(FROM);
return helper;
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}public static void send(MimeMessageHelper helper) {
javaMailSender.send(helper.getMimeMessage());
}
}
3.交给springIOC管理的
package com.lzc.basic.utils;
import com.lzc.basic.exception.GlobalException;
import com.lzc.basic.exception.GlobalExceptionEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;@Component
public class MailUtils {
@Autowired
private JavaMailSender javaMailSender;/**
*
* @param from 发送者
* @param to 收件人
* @param cc 抄送人
* @param subject 邮件主题
* @param content 邮件内容
*/
public void sendSimpleMail(String from,String to,String cc,String subject,String content){
//简单邮件
SimpleMailMessage simpleMessage = new SimpleMailMessage();
simpleMessage.setFrom(from);
simpleMessage.setTo(to);
simpleMessage.setCc(cc);
simpleMessage.setSubject(subject);
simpleMessage.setText(content);
//发送邮件
javaMailSender.send(simpleMessage);
}public void sendMimeMessage(String from, String to,String subject,String content,File file){
try {
//创建复杂邮件对象
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//发送复杂邮件的工具类
//true - 能够添加附件
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
helper.setFrom(from);
helper.setSubject(subject);
//true - 能够再内容中编写html标签 - 会解析
helper.setText(content,true);
//添加附件
if (file != null) {
helper.addAttachment(file.getName(),file);
}
//收件人
helper.setTo(to);
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
throw new GlobalException(GlobalExceptionEnum.MAIL_SEND_ERROR);
}
}
}