Bladeren bron

原始代码 2022/10/8

lwhhszx 1 jaar geleden
bovenliggende
commit
f7d7a823d8

+ 12 - 0
pom.xml

@@ -47,6 +47,18 @@
             <artifactId>fastjson</artifactId>
             <version>${fastjson.version}</version>
         </dependency>
+
+        <!-- 短信接口 -->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.5.16</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
+            <version>1.1.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 37 - 0
src/main/java/com/example/common/Util/FileUtils.java

@@ -0,0 +1,37 @@
+package com.example.common.Util;
+
+import com.example.common.CommonApplication;
+import org.springframework.boot.system.ApplicationHome;
+import org.springframework.stereotype.Component;
+
+import java.io.*;
+
+@Component
+public class FileUtils {
+    public static final String FILE_SEPARATOR = System.getProperty("file.separator");
+
+    public static File getFile(String fileName) {
+
+        try {
+            ApplicationHome ah = new ApplicationHome(CommonApplication.class);
+            //获取 applicationHome 内的路径 ...\target\classes 到这一层级下
+            File fileTem = ah.getSource();
+            String path ="";
+            if(fileTem!=null) {
+                path= fileTem.getParentFile().toString();
+            }
+            else {
+                path="D:\\MSS\\target";
+            }
+            //获取 file的parentFile 即最后一级之前的所有层级路径(包括盘符) 这里能获得到的最终层级为  ...\target 后续用FILE_SEPARATOR(系统路径分割通配符 即 "\") 以及fileName拼接生成存放文件的目录层级 即为根目录 root
+            String rootPath = path+ FileUtils.FILE_SEPARATOR + "template"+FileUtils.FILE_SEPARATOR;
+//            String filePath = fileUtils.getPath("/11.docx");
+            File file = new File(rootPath + fileName);
+            return  file;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+}

+ 8 - 11
src/main/java/com/example/common/Util/MailUtils.java

@@ -24,14 +24,12 @@ public class MailUtils {
 
     public String buildContent(String template, List<String> values) {
         //加载邮件html模板
-        ClassPathResource resource = new ClassPathResource(template);
-        InputStream inputStream = null;
+        File file = FileUtils.getFile(template);
         BufferedReader fileReader = null;
         StringBuffer buffer = new StringBuffer();
         String line;
         try {
-            inputStream = resource.getInputStream();
-            fileReader = new BufferedReader(new InputStreamReader(inputStream));
+            fileReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
             while ((line = fileReader.readLine()) != null) {
                 buffer.append(line);
             }
@@ -46,13 +44,7 @@ public class MailUtils {
                     e.printStackTrace();
                 }
             }
-            if (inputStream != null) {
-                try {
-                    inputStream.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
+
         }
 
         String[] arr = values.toArray(new String[values.size()]);
@@ -87,6 +79,11 @@ public class MailUtils {
             }
             helper.setText(buildContent(map.get("template").toString(), values), true);
             helper.setTo(map.get("email").toString());
+            if (map.get("cc") != null) {
+                String[] ccs =(String[])map.get("cc");
+                helper.setCc(ccs);
+            }
+
             helper.addInline("logo", img);
             helper.setFrom(sendEmail);
             javaMailSender.send(message);

+ 4 - 2
src/main/resources/application-dev.yml

@@ -1,11 +1,13 @@
 
 spring: # rabbitmq
   rabbitmq:
-    host: 192.168.1.24
+    host: 192.168.2.24
     port: 5672
     username: admin
     password: 123456
     listener:
       simple:
         acknowledge-mode: none
-queueName: emailProd.queue
+queueName: emailProd.queue
+
+shortMessageQueue: shortMessage.queue

+ 53 - 0
src/main/resources/mail/ticketsAdd.html

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="description" content="email code">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>邮件</title>
+</head>
+<!--邮箱验证码模板-->
+<body>
+<div style="background-color:#ECECEC; padding: 35px;">
+    <table style="width: 800px;height: 100%; margin: 0 auto; text-align: left; position: relative; border-radius: 5px;font-size: 14px; font-family:微软雅黑, 黑体,serif; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0 0 5px; border-collapse: collapse; background: #fff initial initial initial initial;">
+        <tbody>
+        <tr>
+            <th style="height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: RGB(148,0,211); background-color: RGB(148,0,211); border-radius: 5px 5px 0 0;">
+                <img src="cid:logo" alt="logo" style="width: 110px; height: 35px;">
+            </th>
+        </tr>
+        <tr>
+            <td style="word-break:break-all">
+                <div style="padding:25px 35px 40px; background-color:#fff;opacity:0.8;">
+                    <h2 style="margin: 5px 0; ">
+                        <span style="line-height: 20px;  color: #333333; ">
+                            <span style="line-height: 22px; font-size: medium; ">
+                                致工作人员 {0}:
+                            </span>
+                        </span>
+                    </h2>
+                    <!-- 中文 -->
+                    <p>有新工单添加请尽快处理:</p>
+                    <span style="font-size:18px;font-weight:800">工单号:</span><span style="color: #ff8c00; ">{1}</span>
+
+                    <p>请相关工作人员与客户进行确认</p>
+                    <br>
+                    <div style="width:100%;margin:0 auto;">
+                        <div style="padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;">
+                            <p>威世博团队</p>
+                            <p>如果您有其他使用上的问题,请联系我们:********</p>
+                            <br>
+                            <p>此为系统邮件,请勿回复<br>Please do not reply to this system email
+                            </p>
+                        </div>
+                    </div>
+                </div>
+            </td>
+        </tr>
+        </tbody>
+    </table>
+</div>
+</body>
+</html>
+

+ 20 - 1
src/test/java/com/example/common/CommonApplicationTests.java

@@ -1,13 +1,32 @@
 package com.example.common;
 
+import com.example.common.Util.MailUtils;
 import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 @SpringBootTest
 class CommonApplicationTests {
-
+    @Autowired
+ private MailUtils mailUtils;
     @Test
     void contextLoads() {
+        Map<String, Object> map = new LinkedHashMap<>();
+        map.put("title", "任务通知");
+        map.put("template", "mail/eTask.html");
+        map.put("value1", "");
+        map.put("img", "\\src\\main\\resources\\mail\\logo.png");
+        map.put("email", "2232623707@qq.com");
+        map.put("value2", "addPerson");
+        map.put("value3", "taskName");
+        map.put("value4", "endTime");
+        map.put("value5", "url");
+        map.put("cc",new String[]{"2672485393@qq.com"});
+        mailUtils.sendEmailMessage(map);
     }
 
 }