From e05adfa42f61c6cef58a921a71b5374ae6ebfb0d Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Mon, 29 Sep 2025 14:15:19 +0800
Subject: [PATCH] 邮箱模板

---
 trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java |   13 ++++++-------
 trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java     |    8 ++++++--
 trading-order-admin/src/main/resources/email/ftl/verification_email.ftl                               |   30 ++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+), 9 deletions(-)

diff --git a/trading-order-admin/src/main/resources/email/ftl/verification_email.ftl b/trading-order-admin/src/main/resources/email/ftl/verification_email.ftl
new file mode 100644
index 0000000..7266e23
--- /dev/null
+++ b/trading-order-admin/src/main/resources/email/ftl/verification_email.ftl
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <title>Email Verification Code</title>
+    <style>
+        /* 内联样式确保邮件客户端兼容 */
+        .code-box {
+            display: inline-block;
+            background-color: #000;   /* 黑色背景 */
+            color: #fff;              /* 白色字体 */
+            padding: 10px 20px;       /* 内边距 */
+            border-radius: 10px;       /* 圆角 */
+            font-size: 20px;          /* 字体大小 */
+            font-weight: bold;        /* 加粗 */
+        }
+    </style>
+</head>
+<body>
+<p>Thank you for creating a StakeCubepro account.</p>
+<p>Please enter the following verification code to complete your registration:</p>
+
+<!-- 带样式的验证码 -->
+<div class="code-box">${code}</div>
+
+<p>This code is valid for 10 minutes. Please do not share it with anyone.If this was not requested by you, please contact our customer support team immediately.</p>
+<p style="text-align: right; margin-top: 30px;">— The StakeCubepro Team</p>
+</body>
+</html>
+
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java
index 3997e55..c3be32c 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java
@@ -93,7 +93,7 @@
         }
 //		log.info(MessageFormat.format("target:{0},code:{1},ip:{2}", target, code, ip));
 
-        String content = MessageFormat.format("code is :{0}", new Object[] { code });
+        String content = MessageFormat.format("[StakeCubePro]Verification Code: {0}", new Object[] { code });
         if (target.indexOf("@") == -1) {
 
             send_code_text = this.sysparaService.find("send_code_text").getSvalue();
@@ -178,7 +178,11 @@
             /**
              * 邮件
              */
-            emailSendService.sendEmail(target, content, MessageFormat.format(send_code_text, new Object[] { code }));
+            //emailSendService.sendEmail(target, content, MessageFormat.format(send_code_text, new Object[] { code }));
+            // 调用示例
+            Map<String, Object> model = new HashMap<>();
+            model.put("code", code);
+            emailSendService.sendEmail(target, content, "verification_email.ftl", model);
             logger.info(MessageFormat.format("email--target:{0},code:{1},ip:{2}", target, code, ip));
         }
 
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java
index 8b340df..71ccee9 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java
@@ -25,6 +25,7 @@
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
 
@@ -36,7 +37,7 @@
     private FreeMarkerConfigurer freeMarkerConfigurer;
 
     @Override
-    public void afterPropertiesSet() {
+    public void afterPropertiesSet() throws Exception {
         mailSender = new JavaMailSenderImpl();
         mailSender.setUsername(PropertiesUtil.getProperty("email.username"));
         mailSender.setPassword(PropertiesUtil.getProperty("email.password"));
@@ -61,6 +62,8 @@
         settings.setProperty("default_encoding", "UTF-8");
         settings.setProperty("locale", "zh_CN");
         freeMarkerConfigurer.setFreemarkerSettings(settings);
+
+        freeMarkerConfigurer.afterPropertiesSet();
     }
 
     /*@Override
@@ -115,9 +118,7 @@
                 messageHelper.addAttachment(MimeUtility.encodeWord(emailMessage.getFilename()), rarfile);
             }
             this.mailSender.send(mailMsg);// 发送
-        } catch (MessagingException e) {
-            logger.error(e.getMessage(), e);
-        } catch (UnsupportedEncodingException e) {
+        } catch (MessagingException | UnsupportedEncodingException e) {
             logger.error(e.getMessage(), e);
         }
     }
@@ -134,9 +135,7 @@
             Template tpl = this.freeMarkerConfigurer.getConfiguration().getTemplate(ftlname);
             // 加入map到模板中 输出对应变量
             html = FreeMarkerTemplateUtils.processTemplateIntoString(tpl, map);
-        } catch (IOException e) {
-            e.printStackTrace();
-        } catch (TemplateException e) {
+        } catch (IOException | TemplateException e) {
             e.printStackTrace();
         }
         return html;

--
Gitblit v1.9.3