添加模板邮件-liyuchen
This commit is contained in:
parent
c60c1b4d9c
commit
2af85006c6
|
@ -53,4 +53,9 @@ public class Email {
|
||||||
*/
|
*/
|
||||||
private Map<String, File> attachments;
|
private Map<String, File> attachments;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送数据
|
||||||
|
*/
|
||||||
|
private Map<String, Object> dataMap;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,4 +12,6 @@ import javax.mail.MessagingException;
|
||||||
public interface EmailService {
|
public interface EmailService {
|
||||||
|
|
||||||
void sendMimeMessage(Email email) throws MessagingException;
|
void sendMimeMessage(Email email) throws MessagingException;
|
||||||
|
|
||||||
|
void sendTemplate(Email email) throws MessagingException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,13 +3,15 @@ package com.kening.vordm.service.impl;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.kening.vordm.entity.Administrator;
|
import com.kening.vordm.entity.Administrator;
|
||||||
|
import com.kening.vordm.entity.Email;
|
||||||
import com.kening.vordm.mapper.AdministratorMapper;
|
import com.kening.vordm.mapper.AdministratorMapper;
|
||||||
import com.kening.vordm.service.AdministratorService;
|
import com.kening.vordm.service.AdministratorService;
|
||||||
import com.kening.vordm.util.SendMailUtil;
|
import com.kening.vordm.service.EmailService;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springblade.core.mp.base.BaseServiceImpl;
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
||||||
import org.springblade.core.tool.utils.DigestUtil;
|
import org.springblade.core.tool.utils.DigestUtil;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
@ -26,7 +28,7 @@ import java.util.Map;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class AdministratorServiceImpl extends BaseServiceImpl<AdministratorMapper,Administrator> implements AdministratorService {
|
public class AdministratorServiceImpl extends BaseServiceImpl<AdministratorMapper,Administrator> implements AdministratorService {
|
||||||
|
|
||||||
private SendMailUtil sendMailUtil;
|
private EmailService emailService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据角色名称获取角色id
|
* 根据角色名称获取角色id
|
||||||
|
@ -69,7 +71,12 @@ public class AdministratorServiceImpl extends BaseServiceImpl<AdministratorMappe
|
||||||
dataMap.put("account", administrator.getAccount());
|
dataMap.put("account", administrator.getAccount());
|
||||||
dataMap.put("password", "1234");
|
dataMap.put("password", "1234");
|
||||||
dataMap.put("time", LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")));
|
dataMap.put("time", LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")));
|
||||||
sendMailUtil.sendTemplateMail(administrator.getEmail(),subject,emailTemplate,dataMap);
|
Email email = new Email();
|
||||||
|
email.setSubject(subject);
|
||||||
|
email.setDataMap(dataMap);
|
||||||
|
email.setTos(new String[]{administrator.getEmail()});
|
||||||
|
email.setForm("15806764589@163.com");
|
||||||
|
emailService.sendTemplate(email);
|
||||||
log.info("邮件发送成功");
|
log.info("邮件发送成功");
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("发送邮件失败:{}",e);
|
log.error("发送邮件失败:{}",e);
|
||||||
|
|
|
@ -7,11 +7,15 @@ import org.springblade.core.tool.utils.StringUtil;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.mail.javamail.JavaMailSender;
|
import org.springframework.mail.javamail.JavaMailSender;
|
||||||
import org.springframework.mail.javamail.MimeMessageHelper;
|
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.thymeleaf.TemplateEngine;
|
||||||
|
import org.thymeleaf.context.Context;
|
||||||
|
|
||||||
import javax.mail.MessagingException;
|
import javax.mail.MessagingException;
|
||||||
import javax.mail.internet.MimeMessage;
|
import javax.mail.internet.MimeMessage;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,6 +28,8 @@ public class EmailServiceImpl implements EmailService {
|
||||||
|
|
||||||
private final JavaMailSender javaMailSender;
|
private final JavaMailSender javaMailSender;
|
||||||
|
|
||||||
|
private final TemplateEngine templateEngine;
|
||||||
|
|
||||||
@Value("${spring.mail.username}")
|
@Value("${spring.mail.username}")
|
||||||
private String from;
|
private String from;
|
||||||
|
|
||||||
|
@ -32,6 +38,40 @@ public class EmailServiceImpl implements EmailService {
|
||||||
javaMailSender.send(buildMimeMessage(email));
|
javaMailSender.send(buildMimeMessage(email));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Async("taskExecutor")
|
||||||
|
public void sendTemplate(Email email) throws MessagingException {
|
||||||
|
javaMailSender.send(buildTemplateMail(email));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建模板邮件
|
||||||
|
* @param email
|
||||||
|
* @return
|
||||||
|
* @throws MessagingException
|
||||||
|
*/
|
||||||
|
public MimeMessage buildTemplateMail(Email email) throws MessagingException {
|
||||||
|
//模板数据内容
|
||||||
|
Context context = new Context();
|
||||||
|
//插入模板数据
|
||||||
|
for (Map.Entry<String, Object> entry : email.getDataMap().entrySet()) {
|
||||||
|
context.setVariable(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
//使用的模板
|
||||||
|
String templateContent = templateEngine.process("email", context);
|
||||||
|
MimeMessage message = javaMailSender.createMimeMessage();
|
||||||
|
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
||||||
|
//发送人
|
||||||
|
helper.setFrom(from);
|
||||||
|
//收件人
|
||||||
|
helper.setTo(email.getTos());
|
||||||
|
//主题
|
||||||
|
helper.setSubject(email.getSubject());
|
||||||
|
//发送内容
|
||||||
|
helper.setText(templateContent, true);
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建邮件发送内容
|
* 构建邮件发送内容
|
||||||
* @param email 待发送的邮件
|
* @param email 待发送的邮件
|
||||||
|
|
|
@ -101,6 +101,11 @@
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-mail</artifactId>
|
<artifactId>spring-boot-starter-mail</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--thymeleaf-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
Loading…
Reference in New Issue