master
wangbing 5 years ago
parent 66c2036bcc
commit e912268968

@ -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;
@ -382,40 +381,38 @@ 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);
}
}
//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);
}
}
//utils
{
File utils = Tool.createPath(root, "utils");
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) {
ArrayList<String> 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 {
freeMarkerManager.outputTemp(Tool.createFile(utils, name), "SpringBoot/java/frame/utils/" + name, ctx);
}
}
File schedule = Tool.createPath(root, "schedule");
//schedule
{
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
{//excel
File excel = Tool.createPath(root, "excel");
File excelannotation = Tool.createPath(excel, "annotation");
File excelconverter = Tool.createPath(excel, "converter");
@ -440,13 +437,26 @@ public class SpringBootCallable implements Callable {
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);
}
}
}
/**
* Task
@ -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()) {

@ -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;
/**
*
* <p>
* : JavaMailSenderSpringboot
*
* 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();
}
}
}
}

@ -0,0 +1,32 @@
package com.example.frame.mail.message;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
*
* <p>
* 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<File> files;
public List<File> getFiles() {
return files;
}
public void setFiles(List<File> files) {
this.files = files;
}
public void addFile(File file) {
if (files == null) files = new ArrayList<>();
files.add(file);
}
}

@ -0,0 +1,32 @@
package com.example.frame.mail.message;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
/**
* html
* <p>
* WHtmlInlineMessage message = new WHtmlInlineMessage();
* message.setSubject("标题");
* message.setContent("html><body><h2>html邮件内容</h2><br><img src=\'cid:" + resId + "\'></img></body></html>");
* message.addRes("resId", new File("E:\\1.jpg"));
* WMailSender.send(message);
*/
public class WHtmlInlineMessage extends WHtmlMessage {
private Map<String, File> resMap;
public Map<String, File> getResMap() {
return resMap;
}
public void setResMap(Map<String, File> resMap) {
this.resMap = resMap;
}
public void addRes(String resId, File file) {
if (resMap == null) resMap = new HashMap<>();
resMap.put(resId, file);
}
}

@ -0,0 +1,48 @@
package com.example.frame.mail.message;
/**
* Html
* <p>
* WTextMessage message = new WTextMessage();
* message.setSubject("标题");
* message.setContent("<html><body><h2>HTML邮件内容</h2><br><marquee>飞机飞走了.。。o O 0 ○~~~~~~~</marquee></body></html>");
* 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;
}
}

@ -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 {
}

@ -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;
/**
*
* <p>
* : 使
* <dependency>
* <groupId>javax.mail</groupId>
* <artifactId>mail</artifactId>
* <version>1.4.7</version>
* </dependency>
* <p>
* : JavaMailSenderSpringboot
* JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
* javaMailSender.setDefaultEncoding(UTF-8);
* javaMailSender.setHost(smtp.example.com);
* javaMailSender.setUsername(**@example.com);
* javaMailSender.setPassword(******);
* javaMailSender.setPort(25);
* <p>
*
* MailUtil.sendSimpleMail(javaMailSender, username, "**@example.com", "标题", "内容");
* <p>
* HTML
* String html = "<html><body><h2>HTML邮件内容</h2><br><marquee>飞机飞走了.。。o O 0 ○~~~~~~~</marquee></body></html>";
* MailUtil.sendHtmlMail(javaMailSender, username, "**@example.com", "给你的", html);
* <p>
*
* MailUtil.sendAttachmentsMail(javaMailSender, username, "**@example.com", "给你的", html, "E:\\1.jpg");
* <p>
* HTML<img>
* String resId = "id_001";
* String html2 = "<html><body><h2>html邮件内容</h2><br><img src=\'cid:" + resId + "\'></img></body></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();
}
}
}

@ -103,9 +103,8 @@
<!-- mail 发送邮件 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</#if>
<#if project.needCloud>

@ -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
</#if>
# 自定义配置
# 根路径默认页,'/'跳转至该页

@ -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
</#if>
# 自定义配置
# 根路径默认页,'/'跳转至该页

@ -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);
}
}

@ -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
</#if>
# 自定义配置
# 根路径默认页,'/'跳转至该页

Loading…
Cancel
Save

Powered by TurnKey Linux.