feat: add mailFrom property to Mail setting (#275)

* feat: add mailFrom field to mail setting

* feat: add mail from property to sys setting api

* fix: remove username email pattern validation

* feat: add mailFrom property to mail setting
This commit is contained in:
vran
2023-08-27 20:40:26 +08:00
committed by GitHub
parent 421ebc8005
commit 2d927dae22
10 changed files with 102 additions and 38 deletions

View File

@@ -9,6 +9,8 @@ public class SystemEmailResponse {
private String username;
private String mailFrom;
private String smtpHost;
private Integer smtpPort;

View File

@@ -8,11 +8,13 @@ import javax.validation.constraints.*;
public class SystemEmailUpdateRequest {
@NotBlank
@Email
private String username;
private String password;
@Email
private String mailFrom;
@NotBlank
private String smtpHost;

View File

@@ -24,15 +24,16 @@ public class SystemService {
public Optional<SystemEmailResponse> 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<Integer> idOpt = sysMailDao.selectOptionTopOne().map(SysMail::getId);

View File

@@ -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);