Переглянути джерело

feat(mail): 添加邮件发件人显示名称和系统标识

- 在 application-dev.yml、application-prod.yml 和 application-test.yml 中添加 from-name 配置
- 在 MailServiceImpl 中引入 InternetAddress 并实现发件人显示名称功能
- 修改简单邮件和富文本邮件的发件人设置逻辑以支持显示名称
- 扩展邮件模板添加系统自动发送提示信息
- 统一异常处理将 MessagingException 改为 Exception 捕获
dazhaxie 1 день тому
батько
коміт
b2f36e3cf7

+ 1 - 0
platform-rest/src/main/resources/application-dev.yml

@@ -58,6 +58,7 @@ spring:
     #password: p8ba59KF8wijE7yU
     properties.mail.smtp.port: 465 #端口号465或587
     from: 3788965497@qq.com # 发送邮件的地址,和上面username一致
+    from-name: 设备管理系统 # 发件人显示名称
     properties.mail.smtp.starttls.enable: true
     properties.mail.smtp.starttls.required: true
     properties.mail.smtp.ssl.enable: true

+ 1 - 0
platform-rest/src/main/resources/application-prod.yml

@@ -43,6 +43,7 @@ spring:
     #password: p8ba59KF8wijE7yU
     properties.mail.smtp.port: 465 #端口号465或587
     from: 3788965497@qq.com # 发送邮件的地址,和上面username一致
+    from-name: 设备管理系统 # 发件人显示名称
     properties.mail.smtp.starttls.enable: true
     properties.mail.smtp.starttls.required: true
     properties.mail.smtp.ssl.enable: true

+ 1 - 0
platform-rest/src/main/resources/application-test.yml

@@ -38,6 +38,7 @@ spring:
     #password: p8ba59KF8wijE7yU
     properties.mail.smtp.port: 465 #端口号465或587
     from: 370516181@qq.com # 发送邮件的地址,和上面username一致
+    from-name: 设备管理系统 # 发件人显示名称
     properties.mail.smtp.starttls.enable: true
     properties.mail.smtp.starttls.required: true
     properties.mail.smtp.ssl.enable: true

+ 4 - 0
platform-rest/src/main/resources/templates/repairCheckEmail.ftl

@@ -30,3 +30,7 @@
 <div>
     <a target="_blank" href="${url}">点击链接跳转处理报修单</a>
 </div>
+<br/>
+<div style="color:#999;font-size:12px;margin-top:20px;border-top:1px solid #eee;padding-top:10px;">
+    此邮件由设备管理系统自动发送,请勿直接回复。
+</div>

+ 4 - 0
platform-rest/src/main/resources/templates/repairDispatchEmail.ftl

@@ -44,3 +44,7 @@
 <div>
     <a target="_blank" href="${url}">点击链接跳转处理维修单</a>
 </div>
+<br/>
+<div style="color:#999;font-size:12px;margin-top:20px;border-top:1px solid #eee;padding-top:10px;">
+    此邮件由设备管理系统自动发送,请勿直接回复。
+</div>

+ 4 - 0
platform-rest/src/main/resources/templates/repairEmail.ftl

@@ -30,3 +30,7 @@
 <div>
     <a target="_blank" href="${url}">点击链接跳转处理报修单</a>
 </div>
+<br/>
+<div style="color:#999;font-size:12px;margin-top:20px;border-top:1px solid #eee;padding-top:10px;">
+    此邮件由设备管理系统自动发送,请勿直接回复。
+</div>

+ 4 - 0
platform-rest/src/main/resources/templates/repairRefuseEmail.ftl

@@ -30,3 +30,7 @@
 <div>
     <a target="_blank" href="${url}">点击链接跳转处理报修单</a>
 </div>
+<br/>
+<div style="color:#999;font-size:12px;margin-top:20px;border-top:1px solid #eee;padding-top:10px;">
+    此邮件由设备管理系统自动发送,请勿直接回复。
+</div>

+ 18 - 8
platform-service/src/main/java/com/platform/service/mail/MailServiceImpl.java

@@ -9,7 +9,7 @@ import org.springframework.mail.javamail.JavaMailSender;
 import org.springframework.mail.javamail.MimeMessageHelper;
 import org.springframework.stereotype.Service;
 
-import javax.mail.MessagingException;
+import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 import java.io.File;
 
@@ -35,6 +35,12 @@ public class MailServiceImpl implements MailService {
     private String from;
 
     /**
+     * 发件人显示名称
+     */
+    @Value("${spring.mail.from-name:设备管理系统}")
+    private String fromName;
+
+    /**
      * 简单文本邮件
      *
      * @param to      收件人
@@ -45,8 +51,8 @@ public class MailServiceImpl implements MailService {
     public void sendSimpleMail(String to, String subject, String content) {
         //创建SimpleMailMessage对象
         SimpleMailMessage message = new SimpleMailMessage();
-        //邮件发送人
-        message.setFrom(from);
+        //邮件发送人(带显示名称)
+        message.setFrom("\"" + fromName + "\" <" + from + ">");
         //邮件接收人
         message.setTo(to);
         //邮件主题
@@ -71,8 +77,10 @@ public class MailServiceImpl implements MailService {
         MimeMessageHelper messageHelper;
         try {
             messageHelper = new MimeMessageHelper(message, true);
-            //邮件发送人
-            messageHelper.setFrom(from);
+            //邮件发送人(带显示名称)
+            InternetAddress address = new InternetAddress(from);
+            address.setPersonal(fromName);
+            messageHelper.setFrom(address);
             //邮件接收人
             messageHelper.setTo(to);
             //邮件主题
@@ -83,7 +91,7 @@ public class MailServiceImpl implements MailService {
             mailSender.send(message);
             //日志信息
             log.info("邮件已经发送。");
-        } catch (MessagingException e) {
+        } catch (Exception e) {
             log.error("发送邮件时发生异常!", e);
         }
     }
@@ -101,7 +109,9 @@ public class MailServiceImpl implements MailService {
         MimeMessage message = mailSender.createMimeMessage();
         try {
             MimeMessageHelper helper = new MimeMessageHelper(message, true);
-            helper.setFrom(from);
+            InternetAddress addr = new InternetAddress(from);
+            addr.setPersonal(fromName);
+            helper.setFrom(addr);
             helper.setTo(to);
             helper.setSubject(subject);
             helper.setText(content, true);
@@ -112,7 +122,7 @@ public class MailServiceImpl implements MailService {
             mailSender.send(message);
             //日志信息
             log.info("邮件已经发送。");
-        } catch (MessagingException e) {
+        } catch (Exception e) {
             log.error("发送邮件时发生异常!", e);
         }