From d1a23c0144066e118b0b5f6b3bb65bf783759741 Mon Sep 17 00:00:00 2001
From: mg <maokecheng@163.com>
Date: 星期日, 09 十月 2022 19:04:01 +0800
Subject: [PATCH] 添加邮件发送功能

---
 ycl-platform/src/main/resources/application-dev.yml                        |    4 ++
 ycl-platform/pom.xml                                                       |    5 --
 ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java      |   26 +++++++++++++
 ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java |   51 +++++++++++++++++++++++++
 ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java                    |    2 
 pom.xml                                                                    |   10 +++++
 6 files changed, 91 insertions(+), 7 deletions(-)

diff --git a/pom.xml b/pom.xml
index e9621fc..a0b70f1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -186,6 +186,16 @@
             <artifactId>spring-cloud-starter-openfeign</artifactId>
             <version>3.1.3</version>
         </dependency>
+        <!-- send_mail -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-mail</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java b/ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java
index 8d86cc7..1ebf317 100644
--- a/ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java
+++ b/ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java
@@ -51,7 +51,7 @@
     private Long departmentId;
 
     @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷")
-    private byte userType;
+    private Integer userType;
 
     @ApiModelProperty(value = "搴ф満/鍒嗘満")
     private String zj;
diff --git a/ycl-platform/pom.xml b/ycl-platform/pom.xml
index 084ec6a..171e455 100644
--- a/ycl-platform/pom.xml
+++ b/ycl-platform/pom.xml
@@ -26,11 +26,6 @@
             <version>1.0.0</version>
         </dependency>
         <dependency>
-            <groupId>commons-httpclient</groupId>
-            <artifactId>commons-httpclient</artifactId>
-            <version>3.0.1</version>
-        </dependency>
-        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
diff --git a/ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java b/ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java
new file mode 100644
index 0000000..af4446d
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java
@@ -0,0 +1,26 @@
+package com.ycl.common.util;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * 绫昏鏄�
+ * </p>
+ *
+ * @author mg
+ * @since 2022-10-09
+ */
+@Component
+@ConfigurationProperties(prefix = "file")
+@Data
+public class PropertyValueUtil {
+    @Value("${mail.host}")
+    private String host;
+    @Value("${mail.username}")
+    private String username;
+    @Value("${mail.authorizationCode}")
+    private  String authorizationCode;
+}
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java b/ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
index f0e17e5..0daacdf 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
@@ -1,8 +1,15 @@
 package com.ycl.service.message.factory;
 
+import com.ycl.common.util.PropertyValueUtil;
 import com.ycl.dto.message.MessageParam;
 import com.ycl.entity.message.Message;
 import com.ycl.service.message.Sender;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+import org.springframework.stereotype.Component;
 
 /**
  * <p>
@@ -12,9 +19,51 @@
  * @author mg
  * @since 2022-10-09
  */
+@Component
 public class MailSender implements Sender {
+    private final Logger logger = LoggerFactory.getLogger(getClass());
+
+    private static InnerSender innerSender;
+    @Autowired
+    public void setIMessageService(InnerSender innerSender) {
+        MailSender.innerSender = innerSender;
+    }
+
+    private static PropertyValueUtil propertyValueUtil;
+    @Autowired
+    public void setPropertyValueUtil(PropertyValueUtil propertyValueUtil) {
+        MailSender.propertyValueUtil = propertyValueUtil;
+    }
+
     @Override
     public Message sendMessage(MessageParam messageParam) {
-        return null;
+
+        //鍏ュ簱淇濆瓨
+        Message message = innerSender.sendMessage(messageParam);
+        //缁勮閭欢鍙戦��
+        JavaMailSenderImpl sender = new JavaMailSenderImpl();
+        sender.setHost(propertyValueUtil.getHost());
+        sender.setUsername(propertyValueUtil.getUsername());
+        sender.setPassword(propertyValueUtil.getAuthorizationCode());
+
+        String[] mailUrls = messageParam.getTargetTo().split(",");
+        SimpleMailMessage[] messageList = new SimpleMailMessage[mailUrls.length];
+        for (int i=0;i<messageList.length;i++) {
+            SimpleMailMessage messageTo = new SimpleMailMessage();
+            messageTo.setFrom(messageParam.getTargetFrom());
+            messageTo.setTo(mailUrls[i]);
+            messageTo.setSubject(messageParam.getHead());
+            messageTo.setText(message.getBody());
+            messageList[i] = messageTo;
+        }
+        try {
+            sender.send(messageList);
+            logger.info("绠�鍗曢偖浠跺凡鍙戦��");
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.error("鍙戦�佺畝鍗曢偖浠舵椂鍙戠敓寮傚父锛�", e);
+            e.printStackTrace();
+        }
+        return message;
     }
 }
diff --git a/ycl-platform/src/main/resources/application-dev.yml b/ycl-platform/src/main/resources/application-dev.yml
index 45ede0e..85f7ad1 100644
--- a/ycl-platform/src/main/resources/application-dev.yml
+++ b/ycl-platform/src/main/resources/application-dev.yml
@@ -20,6 +20,10 @@
   snow-flake:
     datacenterId: 1
     machineId: 1
+mail:
+  host: smtp.163.com
+  username: maokecheng2015@163.com
+  authorizationCode: JOMMIXUTGAJYOSNA
 
 spring:
   redis:

--
Gitblit v1.8.0