From e912268968d6c46c541633cbfd866d3af5db0404 Mon Sep 17 00:00:00 2001 From: wangbing Date: Tue, 4 Aug 2020 17:52:53 +0800 Subject: [PATCH] Mail --- .../manger/callable/SpringBootCallable.java | 107 ++++++------ .../java/frame/mail/WMailSender.java | 152 ++++++++++++++++++ .../java/frame/mail/message/WFileMessage.java | 32 ++++ .../mail/message/WHtmlInlineMessage.java | 32 ++++ .../java/frame/mail/message/WHtmlMessage.java | 48 ++++++ .../java/frame/mail/message/WTextMessage.java | 12 ++ .../SpringBoot/java/frame/utils/MailUtil.java | 147 ----------------- src/main/resources/modules/SpringBoot/pom.ftl | 5 +- .../SpringBoot/resources/application-dev.ftl | 10 ++ .../SpringBoot/resources/application-prod.ftl | 10 ++ .../modules/SpringBoot/test/MailTest.java | 35 ++++ .../modules/SpringBoot/test/application.ftl | 20 ++- 12 files changed, 407 insertions(+), 203 deletions(-) create mode 100644 src/main/resources/modules/SpringBoot/java/frame/mail/WMailSender.java create mode 100644 src/main/resources/modules/SpringBoot/java/frame/mail/message/WFileMessage.java create mode 100644 src/main/resources/modules/SpringBoot/java/frame/mail/message/WHtmlInlineMessage.java create mode 100644 src/main/resources/modules/SpringBoot/java/frame/mail/message/WHtmlMessage.java create mode 100644 src/main/resources/modules/SpringBoot/java/frame/mail/message/WTextMessage.java delete mode 100644 src/main/resources/modules/SpringBoot/java/frame/utils/MailUtil.java create mode 100644 src/main/resources/modules/SpringBoot/test/MailTest.java diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java index 43dfe940..72d8bca9 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java @@ -23,7 +23,6 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; -import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.concurrent.Callable; @@ -324,7 +323,7 @@ public class SpringBootCallable implements Callable { } Module module = tryGetModule(project, "wsys"); - if (module== null || !module.getNeedGenerate()){// 生成系统模块 + if (module == null || !module.getNeedGenerate()) {// 生成系统模块 HashMap ctx = new HashMap(); ctx.put("project", project); ctx.put("domain", project.getDomain()); @@ -382,69 +381,80 @@ public class SpringBootCallable implements Callable { ctx.put("timestamp", new Date().getTime()); //auth - File auth = Tool.createPath(root, "auth"); - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/auth/")) { - freeMarkerManager.outputTemp(Tool.createFile(auth, name), "SpringBoot/java/frame/auth/" + name, ctx); + { + File auth = Tool.createPath(root, "auth"); + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/auth/")) { + freeMarkerManager.outputTemp(Tool.createFile(auth, name), "SpringBoot/java/frame/auth/" + name, ctx); + } } //base - File base = Tool.createPath(root, "base"); - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/base/")) { - freeMarkerManager.outputTemp(Tool.createFile(base, name), "SpringBoot/java/frame/base/" + name, ctx); + { + File base = Tool.createPath(root, "base"); + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/base/")) { + freeMarkerManager.outputTemp(Tool.createFile(base, name), "SpringBoot/java/frame/base/" + name, ctx); + } } //utils - File utils = Tool.createPath(root, "utils"); - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) { - ArrayList filters = new ArrayList<>(); - filters.add("MailUtil.java"); - - if (filters.contains(name)) { - if (project.isNeedEMail()) { - freeMarkerManager.outputTemp(Tool.createFile(utils, name), "SpringBoot/java/frame/utils/" + name, ctx); - } - } else { + { + File utils = Tool.createPath(root, "utils"); + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) { freeMarkerManager.outputTemp(Tool.createFile(utils, name), "SpringBoot/java/frame/utils/" + name, ctx); } } - File schedule = Tool.createPath(root, "schedule"); //schedule - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/schedule/")) { - freeMarkerManager.outputTemp(Tool.createFile(schedule, name), "SpringBoot/java/frame/schedule/" + name, ctx); + { + File schedule = Tool.createPath(root, "schedule"); + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/schedule/")) { + freeMarkerManager.outputTemp(Tool.createFile(schedule, name), "SpringBoot/java/frame/schedule/" + name, ctx); + } } - //excel - - File excel = Tool.createPath(root, "excel"); - File excelannotation = Tool.createPath(excel, "annotation"); - File excelconverter = Tool.createPath(excel, "converter"); - File exception = Tool.createPath(excel, "exception"); - File excelhandler = Tool.createPath(excel, "handler"); - File excellistener = Tool.createPath(excel, "listener"); - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/")) { - freeMarkerManager.outputTemp(Tool.createFile(excel, name), "SpringBoot/java/frame/excel/" + name, ctx); - } - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/annotation/")) { - freeMarkerManager.outputTemp(Tool.createFile(excelannotation, name), "SpringBoot/java/frame/excel/annotation/" + name, ctx); - } - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/converter/")) { - freeMarkerManager.outputTemp(Tool.createFile(excelconverter, name), "SpringBoot/java/frame/excel/converter/" + name, ctx); - } - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/exception/")) { - freeMarkerManager.outputTemp(Tool.createFile(exception, name), "SpringBoot/java/frame/excel/exception/" + name, ctx); - } - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/handler/")) { - freeMarkerManager.outputTemp(Tool.createFile(excelhandler, name), "SpringBoot/java/frame/excel/handler/" + name, ctx); + {//excel + File excel = Tool.createPath(root, "excel"); + File excelannotation = Tool.createPath(excel, "annotation"); + File excelconverter = Tool.createPath(excel, "converter"); + File exception = Tool.createPath(excel, "exception"); + File excelhandler = Tool.createPath(excel, "handler"); + File excellistener = Tool.createPath(excel, "listener"); + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/")) { + freeMarkerManager.outputTemp(Tool.createFile(excel, name), "SpringBoot/java/frame/excel/" + name, ctx); + } + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/annotation/")) { + freeMarkerManager.outputTemp(Tool.createFile(excelannotation, name), "SpringBoot/java/frame/excel/annotation/" + name, ctx); + } + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/converter/")) { + freeMarkerManager.outputTemp(Tool.createFile(excelconverter, name), "SpringBoot/java/frame/excel/converter/" + name, ctx); + } + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/exception/")) { + freeMarkerManager.outputTemp(Tool.createFile(exception, name), "SpringBoot/java/frame/excel/exception/" + name, ctx); + } + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/handler/")) { + freeMarkerManager.outputTemp(Tool.createFile(excelhandler, name), "SpringBoot/java/frame/excel/handler/" + name, ctx); + } + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/listener/")) { + freeMarkerManager.outputTemp(Tool.createFile(excellistener, name), "SpringBoot/java/frame/excel/listener/" + name, ctx); + } } - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/excel/listener/")) { - freeMarkerManager.outputTemp(Tool.createFile(excellistener, name), "SpringBoot/java/frame/excel/listener/" + name, ctx); + + //mail + if (project.isNeedEMail()) { + File mail = Tool.createPath(root, "mail"); + File message = Tool.createPath(mail, "message"); + freeMarkerManager.outputTemp(Tool.createFile(mail, "WMailSender.java"), "SpringBoot/java/frame/mail/WMailSender.java", ctx); + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/mail/message/")) { + freeMarkerManager.outputTemp(Tool.createFile(message, name), "SpringBoot/java/frame/mail/message/" + name, ctx); + } } //validation - File validation = Tool.createPath(root, "validation"); - for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/validation/")) { - freeMarkerManager.outputTemp(Tool.createFile(validation, name), "SpringBoot/java/frame/validation/" + name, ctx); + { + File validation = Tool.createPath(root, "validation"); + for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/validation/")) { + freeMarkerManager.outputTemp(Tool.createFile(validation, name), "SpringBoot/java/frame/validation/" + name, ctx); + } } } @@ -686,6 +696,7 @@ public class SpringBootCallable implements Callable { File file = Tool.createFile(root, "UtilTest" + ".java"); freeMarkerManager.outputTemp(file, "SpringBoot/test/UtilTest.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root, "ExcelTest.java"), "SpringBoot/test/ExcelTest.java", ctx); + freeMarkerManager.outputTemp(Tool.createFile(root, "MailTest.java"), "SpringBoot/test/MailTest.java", ctx); } for (Module md : project.getModules()) { diff --git a/src/main/resources/modules/SpringBoot/java/frame/mail/WMailSender.java b/src/main/resources/modules/SpringBoot/java/frame/mail/WMailSender.java new file mode 100644 index 00000000..634f2b42 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/frame/mail/WMailSender.java @@ -0,0 +1,152 @@ +package com.example.frame.mail; + +import com.example.frame.auth.LocalData; +import com.example.frame.mail.message.WFileMessage; +import com.example.frame.mail.message.WHtmlInlineMessage; +import com.example.frame.mail.message.WHtmlMessage; +import com.example.frame.mail.message.WTextMessage; +import org.springframework.core.io.FileSystemResource; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; +import java.io.File; + +/** + * 邮件发送者 + *

+ * 注注注: JavaMailSender发送器,可通过Springboot配置注入 + * 当发送多个邮箱时,需要多个发送器,可以构造多个 + * JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); + * javaMailSender.setDefaultEncoding(UTF-8); + * javaMailSender.setHost(smtp.example.com); + * javaMailSender.setUsername(**@example.com); + * javaMailSender.setPassword(******); + * javaMailSender.setPort(25); + */ +public class WMailSender { + + /** + * 发送简单的文本邮件 + * + * @param message 邮件对象 + * @param senders 发送器 + */ + public static void send(WTextMessage message, JavaMailSender... senders) { + if (senders.length == 0) { + JavaMailSender bean = LocalData.getBean(JavaMailSender.class); + if (bean == null) { + throw new RuntimeException("not find JavaMailSender!"); + } + senders = new JavaMailSender[]{bean}; + } + for (JavaMailSender sender : senders) { + SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); + simpleMailMessage.setFrom(message.getFrom()); + simpleMailMessage.setTo(message.getTo()); + simpleMailMessage.setSubject(message.getSubject()); + simpleMailMessage.setText(message.getContent()); + sender.send(simpleMailMessage); + } + } + + /** + * 发送Html邮件 + * + * @param message 邮件对象 + * @param senders 发送器 + */ + public static void send(WHtmlMessage message, JavaMailSender... senders) { + if (senders.length == 0) { + JavaMailSender bean = LocalData.getBean(JavaMailSender.class); + if (bean == null) { + throw new RuntimeException("not find JavaMailSender!"); + } + senders = new JavaMailSender[]{bean}; + } + for (JavaMailSender sender : senders) { + try { + MimeMessage mimeMessage = sender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(mimeMessage); + helper.setTo(message.getTo()); + helper.setFrom(message.getFrom()); + helper.setSubject(message.getSubject()); + helper.setText(message.getContent(), true); + sender.send(mimeMessage); + } catch (MessagingException e) { + e.printStackTrace(); + } + } + } + + /** + * 发送带附件邮件 + * + * @param message 邮件对象 + * @param senders 发送器 + */ + public static void send(WFileMessage message, JavaMailSender... senders) { + if (senders.length == 0) { + JavaMailSender bean = LocalData.getBean(JavaMailSender.class); + if (bean == null) { + throw new RuntimeException("not find JavaMailSender!"); + } + senders = new JavaMailSender[]{bean}; + } + for (JavaMailSender sender : senders) { + try { + MimeMessage mimeMessage = sender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(mimeMessage); + helper.setTo(message.getTo()); + helper.setFrom(message.getFrom()); + helper.setSubject(message.getSubject()); + helper.setText(message.getContent(), true); + if (message.getFiles() != null && message.getFiles().size() > 0) { + for (File file : message.getFiles()) { + helper.addAttachment(file.getName(), file); + } + } + sender.send(mimeMessage); + } catch (MessagingException e) { + e.printStackTrace(); + } + } + } + + /** + * 发送带内联资源邮件 + * + * @param message 邮件对象 + * @param senders 发送器 + */ + public static void send(WHtmlInlineMessage message, JavaMailSender... senders) { + if (senders.length == 0) { + JavaMailSender bean = LocalData.getBean(JavaMailSender.class); + if (bean == null) { + throw new RuntimeException("not find JavaMailSender!"); + } + senders = new JavaMailSender[]{bean}; + } + for (JavaMailSender sender : senders) { + try { + MimeMessage mimeMessage = sender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(mimeMessage); + helper.setTo(message.getTo()); + helper.setFrom(message.getFrom()); + helper.setSubject(message.getSubject()); + helper.setText(message.getContent(), true); + if (message.getResMap() != null && message.getResMap().size() > 0) { + for (String resId : message.getResMap().keySet()) { + FileSystemResource res = new FileSystemResource(message.getResMap().get(resId)); + helper.addInline(resId, res); + } + } + sender.send(mimeMessage); + } catch (MessagingException e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/main/resources/modules/SpringBoot/java/frame/mail/message/WFileMessage.java b/src/main/resources/modules/SpringBoot/java/frame/mail/message/WFileMessage.java new file mode 100644 index 00000000..1cce9ff8 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/frame/mail/message/WFileMessage.java @@ -0,0 +1,32 @@ +package com.example.frame.mail.message; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +/** + * 发送带附件的邮件 + *

+ * WFileMessage message = new WFileMessage(); + * message.setSubject("标题"); + * message.setContent("内容"); + * message.addFile(new File("E:\\1.jpg")); + * WMailSender.send(message); + */ +public class WFileMessage extends WHtmlMessage { + + private List files; + + public List getFiles() { + return files; + } + + public void setFiles(List files) { + this.files = files; + } + + public void addFile(File file) { + if (files == null) files = new ArrayList<>(); + files.add(file); + } +} diff --git a/src/main/resources/modules/SpringBoot/java/frame/mail/message/WHtmlInlineMessage.java b/src/main/resources/modules/SpringBoot/java/frame/mail/message/WHtmlInlineMessage.java new file mode 100644 index 00000000..7a2ed174 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/frame/mail/message/WHtmlInlineMessage.java @@ -0,0 +1,32 @@ +package com.example.frame.mail.message; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +/** + * 发送内联形式html邮件,通常用于显示图片等信息 + *

+ * WHtmlInlineMessage message = new WHtmlInlineMessage(); + * message.setSubject("标题"); + * message.setContent("html>

html邮件内容


"); + * message.addRes("resId", new File("E:\\1.jpg")); + * WMailSender.send(message); + */ +public class WHtmlInlineMessage extends WHtmlMessage { + + private Map resMap; + + public Map getResMap() { + return resMap; + } + + public void setResMap(Map resMap) { + this.resMap = resMap; + } + + public void addRes(String resId, File file) { + if (resMap == null) resMap = new HashMap<>(); + resMap.put(resId, file); + } +} diff --git a/src/main/resources/modules/SpringBoot/java/frame/mail/message/WHtmlMessage.java b/src/main/resources/modules/SpringBoot/java/frame/mail/message/WHtmlMessage.java new file mode 100644 index 00000000..9843846f --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/frame/mail/message/WHtmlMessage.java @@ -0,0 +1,48 @@ +package com.example.frame.mail.message; + +/** + * 发送Html邮件 + *

+ * WTextMessage message = new WTextMessage(); + * message.setSubject("标题"); + * message.setContent("

HTML邮件内容


飞机飞走了.。。o O 0 ○~~~~~~~"); + * WMailSender.send(message); + */ +public class WHtmlMessage { + private String from; + private String to; + private String subject; + private String content; + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/frame/mail/message/WTextMessage.java b/src/main/resources/modules/SpringBoot/java/frame/mail/message/WTextMessage.java new file mode 100644 index 00000000..7e2ec4ec --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/frame/mail/message/WTextMessage.java @@ -0,0 +1,12 @@ +package com.example.frame.mail.message; + +/** + * 发送简单文本邮件 + * WTextMessage message = new WTextMessage(); + * message.setSubject("标题"); + * message.setContent("内容"); + * WMailSender.send(message); + */ +public class WTextMessage extends WHtmlMessage { + +} diff --git a/src/main/resources/modules/SpringBoot/java/frame/utils/MailUtil.java b/src/main/resources/modules/SpringBoot/java/frame/utils/MailUtil.java deleted file mode 100644 index 14a709a1..00000000 --- a/src/main/resources/modules/SpringBoot/java/frame/utils/MailUtil.java +++ /dev/null @@ -1,147 +0,0 @@ -package ${domain}.frame.utils; - -import org.springframework.core.io.FileSystemResource; -import org.springframework.mail.SimpleMailMessage; -import org.springframework.mail.javamail.JavaMailSender; -import org.springframework.mail.javamail.MimeMessageHelper; - -import javax.mail.MessagingException; -import javax.mail.internet.MimeMessage; -import java.io.File; - -/** - * 邮件发送工具类 - *

- * 注注注: 使用时确保包含以下依赖,否则发送功能无法实现 - * - * javax.mail - * mail - * 1.4.7 - * - *

- * 注注注: JavaMailSender发送器,可通过Springboot配置注入,无需手动实例化 - * JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); - * javaMailSender.setDefaultEncoding(UTF-8); - * javaMailSender.setHost(smtp.example.com); - * javaMailSender.setUsername(**@example.com); - * javaMailSender.setPassword(******); - * javaMailSender.setPort(25); - *

- * 发送简单邮件 - * MailUtil.sendSimpleMail(javaMailSender, username, "**@example.com", "标题", "内容"); - *

- * 发送HTML邮件 - * String html = "

HTML邮件内容


飞机飞走了.。。o O 0 ○~~~~~~~"; - * MailUtil.sendHtmlMail(javaMailSender, username, "**@example.com", "给你的", html); - *

- * 发送附件邮件示例 - * MailUtil.sendAttachmentsMail(javaMailSender, username, "**@example.com", "给你的", html, "E:\\1.jpg"); - *

- * 发送HTML带示例 - * String resId = "id_001"; - * String html2 = "

html邮件内容


"; - * MailUtil.sendInlineResourceMail(javaMailSender, username, "**@example.com", "标题", html2, "E:\\1.jpg", resId); - */ -public class MailUtil { - - /** - * 发送简单邮件 - * - * @param sender 发送器 - * @param from 发送人 - * @param to 接收人 - * @param subject 邮件主题 - * @param content 邮件内容 - */ - public static void sendSimpleMail(JavaMailSender sender, String from, String to, String subject, String content) { - SimpleMailMessage message = new SimpleMailMessage(); - message.setTo(to); - message.setSubject(subject); - message.setText(content); - message.setFrom(from); - sender.send(message); - } - - /** - * 发送HTML邮件 - * - * @param sender 发送器 - * @param from 发送人 - * @param to 接收人 - * @param subject 邮件主题 - * @param content 邮件内容 - */ - public static void sendHtmlMail(JavaMailSender sender, String from, String to, String subject, String content) { - MimeMessage message = sender.createMimeMessage(); - try { - MimeMessageHelper helper = new MimeMessageHelper(message, true); - helper.setTo(to); - helper.setFrom(from); - helper.setSubject(subject); - helper.setText(content, true); - sender.send(message); - } catch (MessagingException e) { - e.printStackTrace(); - } - } - - /** - * 发送附件邮件 - * - * @param sender 发送器 - * @param from 发送人 - * @param to 接收人 - * @param subject 邮件主题 - * @param content 邮件内容 - * @param filePath 文件路径 - */ - public static void sendAttachmentsMail(JavaMailSender sender, String from, String to, String subject, String content, String filePath) { - MimeMessage message = sender.createMimeMessage(); - MimeMessageHelper helper = null; - try { - helper = new MimeMessageHelper(message, true); - helper.setTo(to); - helper.setFrom(from); - helper.setSubject(subject); - helper.setText(content, true); - - FileSystemResource file = new FileSystemResource(new File(filePath)); - String fileName = file.getFilename(); - //此处可以添加多个附件 - helper.addAttachment(fileName, file); - sender.send(message); - } catch (MessagingException e) { - e.printStackTrace(); - } - } - - /** - * 发送图片邮件 - * - * @param sender 发送器 - * @param from 发送人 - * @param to 接收人 - * @param subject 邮件主题 - * @param content 邮件内容 - * @param rscPath 图片路径 - * @param rscId 资源ID - */ - public static void sendInlineResourceMail(JavaMailSender sender, String from, String to, String subject, String content, String rscPath, String rscId) { - MimeMessage message = sender.createMimeMessage(); - try { - MimeMessageHelper helper = new MimeMessageHelper(message, true); - helper.setTo(to); - helper.setFrom(from); - helper.setSubject(subject); - helper.setText(content, true); - - //可以添加多个图片 - FileSystemResource res = new FileSystemResource(new File(rscPath)); - helper.addInline(rscId, res); - - sender.send(message); - } catch (MessagingException e) { - e.printStackTrace(); - } - } -} diff --git a/src/main/resources/modules/SpringBoot/pom.ftl b/src/main/resources/modules/SpringBoot/pom.ftl index f9d1398d..01fad6a9 100644 --- a/src/main/resources/modules/SpringBoot/pom.ftl +++ b/src/main/resources/modules/SpringBoot/pom.ftl @@ -103,9 +103,8 @@ - javax.mail - mail - 1.4.7 + org.springframework.boot + spring-boot-starter-mail <#if project.needCloud> diff --git a/src/main/resources/modules/SpringBoot/resources/application-dev.ftl b/src/main/resources/modules/SpringBoot/resources/application-dev.ftl index 9b9b6b14..0d7cbf62 100644 --- a/src/main/resources/modules/SpringBoot/resources/application-dev.ftl +++ b/src/main/resources/modules/SpringBoot/resources/application-dev.ftl @@ -118,6 +118,16 @@ spring.freemarker.settings.number_format=#.## spring.freemarker.settings.classic_compatible=true spring.freemarker.settings.whitespace_stripping=true spring.freemarker.settings.url_escaping_charset=utf-8 +<#if project.needEMail> +# Mail邮箱配置 +spring.mail.host=smtp.example.com +spring.mail.username=用户邮箱 +spring.mail.password=密码 +spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.starttls.enable=true +spring.mail.properties.mail.smtp.starttls.required=true +spring.mail.default-encoding=UTF-8 + # 自定义配置 # 根路径默认页,'/'跳转至该页 diff --git a/src/main/resources/modules/SpringBoot/resources/application-prod.ftl b/src/main/resources/modules/SpringBoot/resources/application-prod.ftl index 5454d10a..cf618d13 100644 --- a/src/main/resources/modules/SpringBoot/resources/application-prod.ftl +++ b/src/main/resources/modules/SpringBoot/resources/application-prod.ftl @@ -118,6 +118,16 @@ spring.freemarker.settings.number_format=#.## spring.freemarker.settings.classic_compatible=true spring.freemarker.settings.whitespace_stripping=true spring.freemarker.settings.url_escaping_charset=utf-8 +<#if project.needEMail> +# Mail邮箱配置 +spring.mail.host=smtp.example.com +spring.mail.username=用户邮箱 +spring.mail.password=密码 +spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.starttls.enable=true +spring.mail.properties.mail.smtp.starttls.required=true +spring.mail.default-encoding=UTF-8 + # 自定义配置 # 根路径默认页,'/'跳转至该页 diff --git a/src/main/resources/modules/SpringBoot/test/MailTest.java b/src/main/resources/modules/SpringBoot/test/MailTest.java new file mode 100644 index 00000000..eeb339a5 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/test/MailTest.java @@ -0,0 +1,35 @@ +package com.example; + +import com.example.frame.mail.WMailSender; +import com.example.frame.mail.message.WHtmlInlineMessage; +import com.example.frame.mail.message.WTextMessage; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.transaction.annotation.Transactional; + +import java.io.File; + +/** + * UtilTest - - 测试用例 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +@RunWith(SpringRunner.class) +@SpringBootTest +@Transactional +public class MailTest { + + @Test + public void testGeneratePwd() { + WTextMessage message = new WTextMessage(); + message.setSubject("测试"); + message.setContent("测试"); + message.setFrom("wangbing@wbsite.xyz"); + message.setTo("1919101440@qq.com"); + WMailSender.send(message); + } +} diff --git a/src/main/resources/modules/SpringBoot/test/application.ftl b/src/main/resources/modules/SpringBoot/test/application.ftl index 092bfecc..447123cf 100644 --- a/src/main/resources/modules/SpringBoot/test/application.ftl +++ b/src/main/resources/modules/SpringBoot/test/application.ftl @@ -96,6 +96,11 @@ spring.jackson.time-zone=GMT+8 spring.jackson.default-property-inclusion=non_null spring.jackson.mapper.sort-properties-alphabetically=true spring.jackson.deserialization.fail-on-unknown-properties=false +# 文件上传配置 +spring.servlet.multipart.resolveLazily=false +spring.servlet.multipart.max-file-size=100MB +spring.servlet.multipart.max-request-size=100MB +server.tomcat.max-http-post-size=-1 # freemarker spring.freemarker.enabled=true spring.freemarker.allow-request-override=false @@ -114,11 +119,16 @@ spring.freemarker.settings.number_format=#.## spring.freemarker.settings.classic_compatible=true spring.freemarker.settings.whitespace_stripping=true spring.freemarker.settings.url_escaping_charset=utf-8 -# 文件上传配置 -spring.servlet.multipart.resolveLazily=false -spring.servlet.multipart.max-file-size=100MB -spring.servlet.multipart.max-request-size=100MB -server.tomcat.max-http-post-size=-1 +<#if project.needEMail> +# Mail邮箱配置 +spring.mail.host=smtp.example.com +spring.mail.username=用户邮箱 +spring.mail.password=密码 +spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.starttls.enable=true +spring.mail.properties.mail.smtp.starttls.required=true +spring.mail.default-encoding=UTF-8 + # 自定义配置 # 根路径默认页,'/'跳转至该页