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