From 77be965f4114e512a622fb0ace1ad290b3249faa Mon Sep 17 00:00:00 2001 From: vran Date: Sun, 27 Aug 2023 19:54:27 +0800 Subject: [PATCH] feat: add mail from property to sys setting api --- .../system/data/SystemEmailResponse.java | 2 ++ .../system/data/SystemEmailUpdateRequest.java | 2 ++ .../domain/system/service/SystemService.java | 21 ++++++++++--------- .../core/infrastructure/mail/MailSender.java | 7 ++++++- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java index 4d56343..52039c8 100644 --- a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java +++ b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java @@ -9,6 +9,8 @@ public class SystemEmailResponse { private String username; + private String mailFrom; + private String smtpHost; private Integer smtpPort; diff --git a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java index 3094e16..ad9f83e 100644 --- a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java +++ b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java @@ -13,6 +13,8 @@ public class SystemEmailUpdateRequest { private String password; + private String mailFrom; + @NotBlank private String smtpHost; diff --git a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java index 236c2ce..1c92d52 100644 --- a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java +++ b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java @@ -24,15 +24,16 @@ public class SystemService { public Optional getEmailSetting() { return sysMailDao.selectOptionTopOne() - .map(mail -> { - SystemEmailResponse response = new SystemEmailResponse(); - response.setSmtpHost(mail.getSmtpHost()); - response.setSmtpPort(mail.getSmtpPort()); - response.setUsername(mail.getUsername()); - response.setCreateAt(mail.getCreateAt()); - response.setUseSSL(mail.getUseSsl()); - return response; - }); + .map(mail -> { + SystemEmailResponse response = new SystemEmailResponse(); + response.setSmtpHost(mail.getSmtpHost()); + response.setSmtpPort(mail.getSmtpPort()); + response.setUsername(mail.getUsername()); + response.setCreateAt(mail.getCreateAt()); + response.setMailFrom(mail.getMailFrom()); + response.setUseSSL(mail.getUseSsl()); + return response; + }); } public void deleteSystemEmail() { @@ -42,12 +43,12 @@ public class SystemService { } @Transactional - public void updateEmailSetting(SystemEmailUpdateRequest request) { SysMail sysMail = new SysMail(); sysMail.setSmtpHost(request.getSmtpHost()); sysMail.setSmtpPort(request.getSmtpPort()); sysMail.setUsername(request.getUsername()); + sysMail.setMailFrom(request.getMailFrom()); sysMail.setUseSsl(request.getUseSSL()); Optional idOpt = sysMailDao.selectOptionTopOne().map(SysMail::getId); diff --git a/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java b/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java index b832e4a..3a88777 100644 --- a/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java +++ b/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java @@ -2,6 +2,7 @@ package com.databasir.core.infrastructure.mail; import com.databasir.common.SystemException; import com.databasir.dao.tables.pojos.SysMail; +import org.apache.commons.lang3.StringUtils; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; @@ -31,7 +32,11 @@ public class MailSender { MimeMessage mimeMessage = sender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); - helper.setFrom(mail.getUsername()); + if (StringUtils.isNotBlank(mail.getMailFrom())) { + helper.setFrom(mail.getMailFrom()); + } else { + helper.setFrom(mail.getUsername()); + } helper.setTo(to.toArray(new String[0])); helper.setSubject(subject); helper.setText(content, true);