package com.fishpro.sendemail.controller; import freemarker.template.Template; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration; import org.springframework.boot.autoconfigure.jms.JmsProperties; import org.springframework.core.io.FileSystemResource; 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.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import javax.mail.internet.MimeMessage; import java.io.File; import java.util.HashMap; import java.util.Map; @RestController public class MailController { @Autowired private JavaMailSender mailSender; private FreeMarkerConfigurer freeMarkerConfigurer; private String sendUser; /** * 发送文本标题 文本内容 * */ @GetMapping("/sendMail") public String sendMail(){ try{ SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(sendUser); message.setTo("[email protected]"); message.setSubject("主题邮件"); message.setText("邮件内容"); mailSender.send(message); return "success"; }catch (Exception e){ e.printStackTrace(); return "fail"; } } /** * 发送html内容 * */ @GetMapping("/sendHtmlMail") public String sendHtmlMail(){ MimeMessage message=null; try{ message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message,true); helper.setFrom(sendUser); helper.setTo("[email protected]"); helper.setSubject("主题邮件"); StringBuilder sb=new StringBuilder(); sb.append("<h1>尊敬的客户您好!</h1>") .append("<p>欢迎您访问我的博客 www.fishpro.com.cn</p>"); helper.setText(sb.toString(),true); }catch (Exception e){ e.printStackTrace(); return "fail"; } mailSender.send(message); return "success"; } /** * 发送附件内容 * */ @GetMapping("/sendAttachMail") public String sendAttachMail(){ MimeMessage message=null; try{ message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message,true); helper.setFrom(sendUser); helper.setTo("[email protected]"); helper.setSubject("主题邮件"); StringBuilder sb=new StringBuilder(); sb.append("<h1>尊敬的客户您好!</h1>") .append("<p>欢迎您访问我的博客 www.fishpro.com.cn</p>"); helper.setText(sb.toString(),true); //获取附件资源 FileSystemResource fileSystemResource =new FileSystemResource(new File("")); //把附件资源加入到发送消息中 helper.addAttachment("",fileSystemResource); }catch (Exception e){ e.printStackTrace(); return "fail"; } mailSender.send(message); return "success"; } /** * 发送带静态资源的邮件 * */ @GetMapping("/sendInlineMail") public String sendInlineMail(){ MimeMessage message=null; try{ message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message,true); helper.setFrom(sendUser); helper.setTo("[email protected]"); helper.setSubject("主题邮件"); StringBuilder sb=new StringBuilder(); sb.append("<h1>尊敬的客户您好!</h1>") .append("<p>欢迎您访问我的博客 www.fishpro.com.cn</p><p><img src='cid:pic' /></p>"); helper.setText(sb.toString(),true); //获取附件资源 FileSystemResource fileSystemResource =new FileSystemResource(new File("")); //把附件资源加入到发送消息中 helper.addInline("pic",fileSystemResource); }catch (Exception e){ e.printStackTrace(); return "fail"; } mailSender.send(message); return "success"; } /** * 基于 freemarker 模板发送 * */ @GetMapping("/sendTemplateMail") public String sendTemplateMail(){ MimeMessage message = null; try{ message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message,true); helper.setFrom(sendUser); helper.setTo("[email protected]"); helper.setSubject("主题邮件"); Map<String,Object> model =new HashMap<>(); model.put("welcome","欢迎您,hello world template email "); //使用 freeMarkerConfigurer 获取模板 index.ftl Template template = freeMarkerConfigurer.getConfiguration().getTemplate("index.ftl"); String html = FreeMarkerTemplateUtils.processTemplateIntoString(template, model); helper.setText(html, true); }catch (Exception e){ e.printStackTrace(); return "fail"; } mailSender.send(message); return "success"; } }