From 4941aaa5c1c59f17881d3587f1679b93736bd01e Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 02 五月 2022 23:12:16 +0800
Subject: [PATCH] update 重构 pr_172 集成邮件发送功能
---
ruoyi-admin/src/main/resources/application-prod.yml | 22 +++++
ruoyi-framework/src/main/java/com/ruoyi/framework/config/MailConfig.java | 24 ++---
ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/MailProperties.java | 58 ++++++++------
pom.xml | 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/email/MailUtils.java | 12 +-
ruoyi-common/pom.xml | 11 +-
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java | 39 ++++-----
ruoyi-admin/src/main/resources/application-dev.yml | 50 +++++-------
8 files changed, 114 insertions(+), 103 deletions(-)
diff --git a/pom.xml b/pom.xml
index 71963f2..4fc098f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,6 @@
<dynamic-ds.version>3.5.1</dynamic-ds.version>
<tlog.version>1.3.6</tlog.version>
<xxl-job.version>2.3.0</xxl-job.version>
- <mail.version>1.6.2</mail.version>
<!-- jdk11 缂哄け渚濊禆 jaxb-->
<jaxb.version>3.0.1</jaxb.version>
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 50e060b..6be268b 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -137,34 +137,6 @@
# 鏄惁寮�鍚痵sl
ssl: false
- # 閭欢
- mail:
- enabled: false
- # 閭欢鏈嶅姟鍦板潃 (enabled = true 鏃舵墦寮�璇ラ厤缃�)
-# host: smtp.qq.com
- # 鐢ㄦ埛鍚�
- username: xxx@qq.com
- # 鎺堟潈鐮� (璁剧疆 - 璐︽埛 - POP3/SMTP鏈嶅姟)
- password: xxx
- # QQ閭鍔犲瘑绔彛锛屼笉鍚岄偖绠辩殑绔彛涓嶄竴鏍�
- port: 465
- properties:
- mail:
- smtp:
- socketFactory:
- class: javax.net.ssl.SSLSocketFactory
- ssl:
- trust: smtp.qq.com
- # 鏄惁闇�瑕佺敤鎴疯璇�
- auth: true
- starttls:
- # 鍚敤TLS鍔犲瘑
- enable: true
- required: true
- # 浼犺緭鍗忚 starttls.enable = true 鏃朵负 smtps
- protocol: smtps
- debug: true
-
redisson:
# 绾跨▼姹犳暟閲�
threads: 4
@@ -184,3 +156,25 @@
timeout: 3000
# 鍙戝竷鍜岃闃呰繛鎺ユ睜澶у皬
subscriptionConnectionPoolSize: 50
+
+--- # mail 閭欢鍙戦��
+mail:
+ enabled: false
+ host: smtp.163.com
+ port: 465
+ # 鏄惁闇�瑕佺敤鎴峰悕瀵嗙爜楠岃瘉
+ auth: true
+ # 鍙戦�佹柟锛岄伒寰猂FC-822鏍囧噯
+ from: xxx@163.com
+ # 鐢ㄦ埛鍚嶏紙娉ㄦ剰锛氬鏋滀娇鐢╢oxmail閭锛屾澶剈ser涓簈q鍙凤級
+ user: xxx@163.com
+ # 瀵嗙爜锛堟敞鎰忥紝鏌愪簺閭闇�瑕佷负SMTP鏈嶅姟鍗曠嫭璁剧疆瀵嗙爜锛岃鎯呮煡鐪嬬浉鍏冲府鍔╋級
+ pass: xxxxxxxxxx
+ # 浣跨敤 STARTTLS瀹夊叏杩炴帴锛孲TARTTLS鏄绾枃鏈�氫俊鍗忚鐨勬墿灞曘��
+ starttlsEnable: true
+ # 浣跨敤SSL瀹夊叏杩炴帴
+ sslEnable: true
+ # SMTP瓒呮椂鏃堕暱锛屽崟浣嶆绉掞紝缂虹渷鍊间笉瓒呮椂
+ timeout: 0
+ # Socket杩炴帴瓒呮椂鍊硷紝鍗曚綅姣锛岀己鐪佸�间笉瓒呮椂
+ connectionTimeout: 0
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
index 6a28bcc..4966a41 100644
--- a/ruoyi-admin/src/main/resources/application-prod.yml
+++ b/ruoyi-admin/src/main/resources/application-prod.yml
@@ -159,3 +159,25 @@
timeout: 3000
# 鍙戝竷鍜岃闃呰繛鎺ユ睜澶у皬
subscriptionConnectionPoolSize: 50
+
+--- # mail 閭欢鍙戦��
+mail:
+ enabled: false
+ host: smtp.163.com
+ port: 465
+ # 鏄惁闇�瑕佺敤鎴峰悕瀵嗙爜楠岃瘉
+ auth: true
+ # 鍙戦�佹柟锛岄伒寰猂FC-822鏍囧噯
+ from: xxx@163.com
+ # 鐢ㄦ埛鍚嶏紙娉ㄦ剰锛氬鏋滀娇鐢╢oxmail閭锛屾澶剈ser涓簈q鍙凤級
+ user: xxx@163.com
+ # 瀵嗙爜锛堟敞鎰忥紝鏌愪簺閭闇�瑕佷负SMTP鏈嶅姟鍗曠嫭璁剧疆瀵嗙爜锛岃鎯呮煡鐪嬬浉鍏冲府鍔╋級
+ pass: xxxxxxxxxx
+ # 浣跨敤 STARTTLS瀹夊叏杩炴帴锛孲TARTTLS鏄绾枃鏈�氫俊鍗忚鐨勬墿灞曘��
+ starttlsEnable: true
+ # 浣跨敤SSL瀹夊叏杩炴帴
+ sslEnable: true
+ # SMTP瓒呮椂鏃堕暱锛屽崟浣嶆绉掞紝缂虹渷鍊间笉瓒呮椂
+ timeout: 0
+ # Socket杩炴帴瓒呮椂鍊硷紝鍗曚綅姣锛岀己鐪佸�间笉瓒呮椂
+ connectionTimeout: 0
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index fd6a999..7f0e384 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -128,6 +128,11 @@
</dependency>
<dependency>
+ <groupId>com.sun.mail</groupId>
+ <artifactId>jakarta.mail</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
@@ -157,12 +162,6 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>lock4j-redisson-spring-boot-starter</artifactId>
- </dependency>
-
- <dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>javax.mail</artifactId>
- <version>${mail.version}</version>
</dependency>
</dependencies>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/email/MailUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/email/MailUtils.java
index 92fa89a..32a3f82 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/email/MailUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/email/MailUtils.java
@@ -38,13 +38,13 @@
/**
* 鑾峰彇閭欢鍙戦�佸疄渚� (鑷畾涔夊彂閫佷汉浠ュ強鎺堟潈鐮�)
*
- * @param username 鍙戦�佷汉
- * @param password 鎺堟潈鐮�
+ * @param user 鍙戦�佷汉
+ * @param pass 鎺堟潈鐮�
*/
- public static MailAccount getMailAccount(String username, String password) {
- ACCOUNT.setFrom(StringUtils.blankToDefault(username, ACCOUNT.getUser()));
- ACCOUNT.setUser(StringUtils.blankToDefault(username, ACCOUNT.getUser()));
- ACCOUNT.setPass(StringUtils.blankToDefault(password, ACCOUNT.getPass()));
+ public static MailAccount getMailAccount(String from, String user, String pass) {
+ ACCOUNT.setFrom(StringUtils.blankToDefault(from, ACCOUNT.getFrom()));
+ ACCOUNT.setUser(StringUtils.blankToDefault(user, ACCOUNT.getUser()));
+ ACCOUNT.setPass(StringUtils.blankToDefault(pass, ACCOUNT.getPass()));
return ACCOUNT;
}
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
index 53f130f..74e9e33 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
@@ -3,6 +3,8 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.utils.email.MailUtils;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -14,41 +16,34 @@
/**
- * 娴嬭瘯閭欢鍙戦�� Controller
+ * 閭欢鍙戦�佹渚�
*
* @author Michelle.Chung
*/
@Validated
-@Api(value = "閭欢鎺у埗鍣�", tags = {"娴嬭瘯閭欢鍙戦��"})
+@Api(value = "閭欢鍙戦�佹渚�", tags = {"閭欢鍙戦�佹渚�"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RequestMapping("/demo/mail")
@RestController
public class MailController {
- /**
- * 鍙戦�侀偖浠�
- *
- * @param to 鎺ユ敹浜�
- * @param subject 鏍囬
- * @param text 鍐呭
- */
+ @ApiOperation("鍙戦�侀偖浠�")
@GetMapping("/sendSimpleMessage")
- public R<Void> sendSimpleMessage(String to, String subject, String text) {
- MailUtils.send(to, subject, text, false);
- return R.ok("鎿嶄綔鎴愬姛");
+ public R<Void> sendSimpleMessage(@ApiParam("鎺ユ敹浜�") String to,
+ @ApiParam("鏍囬") String subject,
+ @ApiParam("鍐呭") String text) {
+ MailUtils.sendText(to, subject, text);
+ return R.ok();
}
- /**
- * 鍙戦�侀偖浠讹紙甯﹂檮浠讹級
- *
- * @param to 鎺ユ敹浜�
- * @param subject 鏍囬
- * @param text 鍐呭
- */
+ @ApiOperation("鍙戦�侀偖浠讹紙甯﹂檮浠讹級")
@GetMapping("/sendMessageWithAttachment")
- public R<Void> sendMessageWithAttachment(String to, String subject, String text, String filePath) {
- MailUtils.send(to, subject, text, false, new File(filePath));
- return R.ok("鎿嶄綔鎴愬姛");
+ public R<Void> sendMessageWithAttachment(@ApiParam("鎺ユ敹浜�") String to,
+ @ApiParam("鏍囬") String subject,
+ @ApiParam("鍐呭") String text,
+ @ApiParam("闄勪欢璺緞") String filePath) {
+ MailUtils.sendText(to, subject, text, new File(filePath));
+ return R.ok();
}
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MailConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MailConfig.java
index d4ff8a7..20769aa 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MailConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MailConfig.java
@@ -6,8 +6,6 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import javax.annotation.Resource;
-
/**
* JavaMail 閰嶇疆
*
@@ -16,23 +14,21 @@
@Configuration
public class MailConfig {
- @Resource
- private MailProperties mailProperties;
-
- /**
- * 鍒濆鍖� JavaMailSender
- */
@Bean
- @ConditionalOnProperty(value = "spring.mail.enabled", havingValue = "true")
- public MailAccount mailAccount() {
+ @ConditionalOnProperty(value = "mail.enabled", havingValue = "true")
+ public MailAccount mailAccount(MailProperties mailProperties) {
MailAccount account = new MailAccount();
- account.setFrom(mailProperties.getUsername());
- account.setUser(mailProperties.getUsername());
- account.setPass(mailProperties.getPassword());
+ account.setHost(mailProperties.getHost());
account.setPort(mailProperties.getPort());
account.setAuth(mailProperties.getAuth());
- account.setDebug(mailProperties.getDebug());
+ account.setFrom(mailProperties.getFrom());
+ account.setUser(mailProperties.getUser());
+ account.setPass(mailProperties.getPass());
+ account.setSocketFactoryPort(mailProperties.getPort());
account.setStarttlsEnable(mailProperties.getStarttlsEnable());
+ account.setSslEnable(mailProperties.getSslEnable());
+ account.setTimeout(mailProperties.getTimeout());
+ account.setConnectionTimeout(mailProperties.getConnectionTimeout());
return account;
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/MailProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/MailProperties.java
index ce2103f..66d3698 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/MailProperties.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/MailProperties.java
@@ -1,7 +1,6 @@
package com.ruoyi.framework.config.properties;
import lombok.Data;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@@ -12,7 +11,7 @@
*/
@Data
@Component
-@ConfigurationProperties(prefix = "spring.mail")
+@ConfigurationProperties(prefix = "mail")
public class MailProperties {
/**
@@ -21,45 +20,52 @@
private String enabled;
/**
- * 閭欢鏈嶅姟鍦板潃
+ * SMTP鏈嶅姟鍣ㄥ煙鍚�
*/
private String host;
/**
- * 鐢ㄦ埛鍚�
- */
- private String username;
-
- /**
- * 鎺堟潈鐮� (璁剧疆 - 璐︽埛 - POP3/SMTP鏈嶅姟)
- */
- private String password;
-
- /**
- * 閭鍔犲瘑绔彛锛屼笉鍚岄偖绠辩殑绔彛涓嶄竴鏍�
+ * SMTP鏈嶅姟绔彛
*/
private Integer port;
/**
- * 鏄惁闇�瑕佺敤鎴疯璇�
+ * 鏄惁闇�瑕佺敤鎴峰悕瀵嗙爜楠岃瘉
*/
- @Value("${spring.mail.properties.mail.smtp.auth}")
private Boolean auth;
/**
- * 鏄惁鍚敤TLS鍔犲瘑
+ * 鐢ㄦ埛鍚�
*/
- @Value("${spring.mail.properties.mail.smtp.starttls.enable}")
- private Boolean starttlsEnable;
-
- @Value("${spring.mail.properties.mail.smtp.ssl.trust}")
- private String sslTrust;
-
- private Boolean debug;
+ private String user;
/**
- * 浼犺緭鍗忚 starttls.enable = true 鏃朵负 smtps
+ * 瀵嗙爜
*/
- private String protocol;
+ private String pass;
+ /**
+ * 鍙戦�佹柟锛岄伒寰猂FC-822鏍囧噯
+ */
+ private String from;
+
+ /**
+ * 浣跨敤 STARTTLS瀹夊叏杩炴帴锛孲TARTTLS鏄绾枃鏈�氫俊鍗忚鐨勬墿灞曘�傚畠灏嗙函鏂囨湰杩炴帴鍗囩骇涓哄姞瀵嗚繛鎺ワ紙TLS鎴朣SL锛夛紝 鑰屼笉鏄娇鐢ㄤ竴涓崟鐙殑鍔犲瘑閫氫俊绔彛銆�
+ */
+ private Boolean starttlsEnable;
+
+ /**
+ * 浣跨敤 SSL瀹夊叏杩炴帴
+ */
+ private Boolean sslEnable;
+
+ /**
+ * SMTP瓒呮椂鏃堕暱锛屽崟浣嶆绉掞紝缂虹渷鍊间笉瓒呮椂
+ */
+ private Long timeout;
+
+ /**
+ * Socket杩炴帴瓒呮椂鍊硷紝鍗曚綅姣锛岀己鐪佸�间笉瓒呮椂
+ */
+ private Long connectionTimeout;
}
--
Gitblit v1.9.3