新聞中心
不懂SpringBoot如何使用FreeMarker模塊引擎發(fā)送郵件??其實想解決這個問題也不難,下面讓小編帶著大家一起學(xué)習(xí)怎么去解決,希望大家閱讀完這篇文章后大所收獲。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了淳安免費(fèi)建站歡迎大家使用!
通過spirngboot 自帶的mail服務(wù)及FreeMarker模板引擎,發(fā)送郵
添加依賴
org.springframework.boot spring-boot-starter-freemarker org.springframework.boot spring-boot-starter-mail org.springframework.boot spring-boot-starter-web org.projectlombok lombok true
在application.yml文件中配置Mail信息
spring: mail: port: 25 username: ${username} password: ${password} protocol: smtp default-encoding: utf-8 host: ${host}
編寫MailService服務(wù)
@Service public class MailServiceImpl implements MailService { //郵件的發(fā)送者 @Value("${spring.mail.username}") private String from; //注入MailSender @Autowired private JavaMailSender mailSender; //發(fā)送郵件的模板引擎 @Autowired private FreeMarkerConfigurer configurer; /** * @param params 發(fā)送郵件的主題對象 object * @param title 郵件標(biāo)題 * @param templateName 模板名稱 */ @Override public void sendMessageMail(Object params, String title, String templateName) { try { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom(from); helper.setTo(InternetAddress.parse("[email protected]"));//發(fā)送給誰 helper.setSubject("【" + title + "-" + LocalDate.now() + " " + LocalTime.now().withNano(0) + "】");//郵件標(biāo)題 Mapmodel = new HashMap<>(); model.put("params", params); try { Template template = configurer.getConfiguration().getTemplate(templateName); try { String text = FreeMarkerTemplateUtils.processTemplateIntoString(template, model); helper.setText(text, true); mailSender.send(mimeMessage); } catch (TemplateException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } } catch (MessagingException e) { e.printStackTrace(); } } }
定義發(fā)送郵件對象
發(fā)送內(nèi)容為object,我這里演示一個對象,通過模板渲染方式接收內(nèi)容
@Data public class Message { private String messageCode; private String messageStatus; private String cause; }
在項目templates目錄新建個message.ftl文件
消息通知 郵件消息通知
MessageCode MessageStatus Cause ${(params.messageCode)!""} ${(params.messageStatus)!""} ${(params.cause)!""}
測試郵件發(fā)送
新建controller類
@RestController public class MailController { @Autowired private MailService mailService; @RequestMapping(value = "/sendMessage", method = RequestMethod.GET) public void sendMailMessage() { Message message = new Message(); message.setMessageCode("MissingParameter"); message.setMessageStatus("Failed"); message.setCause("缺少參數(shù),請確認(rèn)"); mailService.sendMessageMail(message, "測試消息通知", "message.ftl"); } }
啟動服務(wù)訪問 http://localhost:8080/sendMessage
查看郵箱
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享SpringBoot如何使用FreeMarker模塊引擎發(fā)送郵件?內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
文章標(biāo)題:SpringBoot如何使用FreeMarker模塊引擎發(fā)送郵件?
地址分享:http://fisionsoft.com.cn/article/pgijio.html