diff --git a/sms4j-email-jakarta/sms4j-email-jakarta-api/src/main/java/org/dromara/email/jakarta/api/package-info.java b/sms4j-email-jakarta/sms4j-email-jakarta-api/src/main/java/org/dromara/email/jakarta/api/package-info.java new file mode 100644 index 00000000..9332030e --- /dev/null +++ b/sms4j-email-jakarta/sms4j-email-jakarta-api/src/main/java/org/dromara/email/jakarta/api/package-info.java @@ -0,0 +1,6 @@ +/** + *
邮件插件api模块
+ * @author :Wind
+ * 2024/10/23 10:58
+ **/
+package org.dromara.email.jakarta.api;
\ No newline at end of file
diff --git a/sms4j-email-jakarta/sms4j-email-jakarta-comm/src/main/java/org/dromara/email/jakarta/comm/entity/MailMessage.java b/sms4j-email-jakarta/sms4j-email-jakarta-comm/src/main/java/org/dromara/email/jakarta/comm/entity/MailMessage.java
index 829715ad..827264c3 100644
--- a/sms4j-email-jakarta/sms4j-email-jakarta-comm/src/main/java/org/dromara/email/jakarta/comm/entity/MailMessage.java
+++ b/sms4j-email-jakarta/sms4j-email-jakarta-comm/src/main/java/org/dromara/email/jakarta/comm/entity/MailMessage.java
@@ -3,6 +3,7 @@ package org.dromara.email.jakarta.comm.entity;
import lombok.Getter;
import org.dromara.email.jakarta.comm.utils.ReflectUtil;
+import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
@@ -27,6 +28,12 @@ public class MailMessage {
/** html模板文件的输入流,可来自任意可读取位置*/
private InputStream htmlInputStream;
+ /** html内容,可以存在模板变量*/
+ private String htmlContent;
+
+ /** html 模板文件的File对象*/
+ private File htmlFile;
+
/** html 模板参数*/
private Map 邮件插件通用模块
+ * @author :Wind
+ * 2024/10/23 10:58
+ **/
+package org.dromara.email.jakarta.comm;
\ No newline at end of file
diff --git a/sms4j-email-jakarta/sms4j-email-jakarta-comm/src/main/java/org/dromara/email/jakarta/comm/utils/HtmlUtil.java b/sms4j-email-jakarta/sms4j-email-jakarta-comm/src/main/java/org/dromara/email/jakarta/comm/utils/HtmlUtil.java
index 376aa5c6..61b79d17 100644
--- a/sms4j-email-jakarta/sms4j-email-jakarta-comm/src/main/java/org/dromara/email/jakarta/comm/utils/HtmlUtil.java
+++ b/sms4j-email-jakarta/sms4j-email-jakarta-comm/src/main/java/org/dromara/email/jakarta/comm/utils/HtmlUtil.java
@@ -2,11 +2,7 @@ package org.dromara.email.jakarta.comm.utils;
import org.dromara.email.jakarta.comm.errors.MailException;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
+import java.io.*;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
@@ -32,8 +28,8 @@ public final class HtmlUtil {
* @param name 模板文件名
* @author :Wind
*/
- public static List 从工厂获取一个邮件发送实例
* @param key 配置的标识key
* @author :Wind
- */
+ */
public static MailClient createMailClient(Object key){
try {
return MailBuild.build(CONFIGS.get(key));
@@ -40,7 +40,7 @@ public class MailFactory{
* @param key 配置的标识key
* @param blacklist 黑名单接口,实例将从这里获取黑名单数据
* @author :Wind
- */
+ */
public static MailClient createMailClient(Object key, Blacklist blacklist){
try {
return MailBuild.build(CONFIGS.get(key),blacklist);
@@ -55,7 +55,7 @@ public class MailFactory{
* @param key 标识
* @param config 配置对象
* @author :Wind
- */
+ */
public static void put(Object key, MailSmtpConfig config){
CONFIGS.put(key,config);
}
diff --git a/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/factory/MonitorFactory.java b/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/factory/MonitorFactory.java
index 39c0af66..ac67bb9a 100644
--- a/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/factory/MonitorFactory.java
+++ b/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/factory/MonitorFactory.java
@@ -28,7 +28,7 @@ public class MonitorFactory {
* @param config 监听配置
* @param monitor 回调对象
* @author :Wind
- */
+ */
public static void put(String key, MailImapConfig config, Monitor monitor){
SERVICES.put(key,new MonitorService(config,monitor));
}
@@ -38,9 +38,9 @@ public class MonitorFactory {
* 开始监听指定标识的邮箱
* @param key 标识
* @author :Wind
- */
+ */
public static void start(String key){
- SERVICES.get(key).start();
+ SERVICES.get(key).start();
}
/**
@@ -48,7 +48,7 @@ public class MonitorFactory {
* 停止监听指定标识的邮箱
* @param key 标识
* @author :Wind
- */
+ */
public static void stop(String key){
SERVICES.get(key).stop();
}
@@ -58,7 +58,7 @@ public class MonitorFactory {
* 获取指定标识的配置信息
* @param key 标识
* @author :Wind
- */
+ */
public static MailImapConfig getConfig(String key) {
return SERVICES.get(key).getMailImapConfig();
}
diff --git a/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/service/MailBuild.java b/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/service/MailBuild.java
index fcf339c0..272590a9 100644
--- a/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/service/MailBuild.java
+++ b/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/service/MailBuild.java
@@ -99,7 +99,7 @@ public class MailBuild {
return MailService.instance(new MailBuild(config));
}
public static MailClient build(MailSmtpConfig config,Blacklist blacklist)throws MessagingException {
- return MailService.instance(new MailBuild(config,blacklist));
+ return MailService.instance(new MailBuild(config,blacklist));
}
/**
@@ -120,7 +120,7 @@ public class MailBuild {
list.add(s);
}
}
- return InternetAddress.parse(CollUtil.join(list, ","));
+ return InternetAddress.parse(CollUtil.join(list, ","));
} catch (AddressException e) {
throw new MailException(e);
}
diff --git a/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/service/MailService.java b/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/service/MailService.java
index d7fbd3b4..139419eb 100644
--- a/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/service/MailService.java
+++ b/sms4j-email-jakarta/sms4j-email-jakarta-core/src/main/java/org/dromara/email/jakarta/core/service/MailService.java
@@ -26,6 +26,7 @@ import org.dromara.email.jakarta.comm.utils.ZipUtils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -50,8 +51,14 @@ public class MailService implements MailClient {
if (mailMessage.getHtmlInputStream() != null) {
html = HtmlUtil.readHtml(mailMessage.getHtmlInputStream());
}
- if (StrUtil.isNotBlank(mailMessage.getHtmlPath())){
- html = HtmlUtil.readHtml(mailMessage.getHtmlPath());
+ if (StrUtil.isNotBlank(mailMessage.getHtmlPath())) {
+ html = HtmlUtil.readHtml(mailMessage.getHtmlPath(), MailService.class);
+ }
+ if (mailMessage.getHtmlFile() != null) {
+ html = HtmlUtil.readHtml(mailMessage.getHtmlFile());
+ }
+ if (StrUtil.isNotBlank(mailMessage.getHtmlContent())) {
+ html = Arrays.asList(mailMessage.getHtmlContent().split("\n"));
}
send(mailMessage.getMailAddress(),
mailMessage.getTitle(),
@@ -186,11 +193,17 @@ public class MailService implements MailClient {
message.setSubject(title);
Multipart multipart = new MimeMultipart("alternative");
- if (CollUtil.isNotEmpty(html) && MapUtil.isNotEmpty(parameter)) {
- //读取模板并进行变量替换
- List