1.引入依赖
<!--邮件发送-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.填写配置 application.properties
#JavaMailSender邮件发送的相关配置
spring.mail.host=smtp.exmail.qq.com
spring.mail.username=****************
spring.mail.password=****************
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
3.邮件发送工具类
import com.****.config.SpringUtil;
import freemarker.template.Template;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.env.Environment;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import javax.mail.internet.MimeMessage;
import java.util.Map;
/**
* 〈邮件发送的工具类〉
*
* @create 2018/7/19
* @since 1.0.0
*/
public class MailUtil {
private static Logger LOGGER = LoggerFactory.getLogger(MailUtil.class);
private static JavaMailSender mailSender;
private static String sender;
private static FreeMarkerConfigurer freeMarkerConfigurer;
static {
mailSender = SpringUtil.getBean(JavaMailSender.class);
freeMarkerConfigurer = SpringUtil.getBean(FreeMarkerConfigurer.class);
Environment environment = SpringUtil.getBean(Environment.class);
sender = environment.getProperty("spring.mail.username");
}
public static void sendSimpleMail(String receiverName, String subject, String mailContent ){
LOGGER.info("发送一个普通邮件");
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(sender);
message.setTo(receiverName);
message.setSubject(subject);
message.setText(mailContent);
mailSender.send(message);
LOGGER.info("发送普通邮件结束");
}
/**
*
* @param subject 主题
* @param receiver 接收者
* @param templateName 使用模板名
* @param model 传递给模板的数据
*/
public static void sendTemplateMail(String subject,String receiver,String templateName,Map<String, Object> model){
MimeMessage message = null;
try {
message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(receiver);
helper.setSubject(subject);
//读取 html 模板
Template template = freeMarkerConfigurer.getConfiguration().getTemplate(templateName);
String html = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
helper.setText(html, true);
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(message);
}
}
4.邮件html模板:在resources/templates下创建xx.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=UTF-8'>
<style>
table.dataintable {
border: 1px solid #888888;
border-collapse: collapse;
font-family: Arial,Helvetica,sans-serif;
margin-top: 10px;
width: 100%;
}
table.dataintable th {
background-color: #CCCCCC;
border: 1px solid #888888;
padding: 5px 15px 5px 5px;
text-align: center;
}
table.dataintable td {
background-color: #EFEFEF;
border: 1px solid #AAAAAA;
padding: 5px 15px 5px 5px;
text-align: center;
}
</style>
</head>
<body>
<h2>您好,
${userName}
!</h2><br/>
<h3> ........。</h3>
<br/>
<table class='dataintable'>
<tr>
<th>序号</th>
<th>xxxx/th>
<th>xxxxxxxx</th>
<th>xxxxxxxxxxxx/th>
<th>xxxxxxxxxxxxxxxx</th>
</tr>
<#if xxxxList?? && xxxxList?size gt 0>
<#list xxxxListas item>
<tr>
<td>1</td>
<td>${item.username}</td>
<td>${item.password}</td>
<td>${item.gender}</td>
<td>${item.sex}</td>
</tr>
</#list>
</#if>
</table>
</body>
</html>