From 19adc0b7d804c06e1ad4377f223b86d917204a2b Mon Sep 17 00:00:00 2001 From: "good0619@naver.com" <32181771@dankook.ac.kr> Date: Sun, 13 Aug 2023 04:04:33 +0900 Subject: [PATCH] refactor : mail --- .../se/ton/t210/service/AuthCodeUtils.java | 2 +- .../java/se/ton/t210/service/AuthService.java | 15 ++++-------- .../service/mail/JavaMailServiceImpl.java | 24 +++++++++---------- .../t210/service/mail/LogMailServiceImpl.java | 20 ++++++++-------- .../service/mail/MailServiceInterface.java | 6 ++--- .../t210/service/mail/form/AuthEmailForm.java | 18 -------------- .../se/ton/t210/service/mail/form/Email.java | 19 --------------- .../ton/t210/service/mail/form/MailForm.java | 8 +++++++ .../service/mail/form/SignUpAuthMailForm.java | 20 ++++++++++++++++ .../resources/properties/prod/mail.properties | 6 ++--- 10 files changed, 60 insertions(+), 78 deletions(-) delete mode 100644 src/main/java/se/ton/t210/service/mail/form/AuthEmailForm.java delete mode 100644 src/main/java/se/ton/t210/service/mail/form/Email.java create mode 100644 src/main/java/se/ton/t210/service/mail/form/MailForm.java create mode 100644 src/main/java/se/ton/t210/service/mail/form/SignUpAuthMailForm.java diff --git a/src/main/java/se/ton/t210/service/AuthCodeUtils.java b/src/main/java/se/ton/t210/service/AuthCodeUtils.java index cbc1bed..ff1c830 100644 --- a/src/main/java/se/ton/t210/service/AuthCodeUtils.java +++ b/src/main/java/se/ton/t210/service/AuthCodeUtils.java @@ -13,7 +13,7 @@ public static String createAuthNumberCode(int length) { } return builder.toString(); } catch (Exception e) { - throw new IllegalArgumentException("email authentication code create error"); + throw new IllegalArgumentException("create auth code error"); } } } diff --git a/src/main/java/se/ton/t210/service/AuthService.java b/src/main/java/se/ton/t210/service/AuthService.java index d3d1477..d933821 100644 --- a/src/main/java/se/ton/t210/service/AuthService.java +++ b/src/main/java/se/ton/t210/service/AuthService.java @@ -5,9 +5,9 @@ import org.springframework.stereotype.Service; import se.ton.t210.cache.EmailAuthMailCache; import se.ton.t210.cache.EmailAuthMailCacheRepository; -import se.ton.t210.dto.Email; import se.ton.t210.exception.AuthException; import se.ton.t210.service.mail.MailServiceInterface; +import se.ton.t210.service.mail.form.SignUpAuthMailForm; import se.ton.t210.service.token.AuthTokenService; import se.ton.t210.utils.http.CookieUtils; @@ -27,12 +27,6 @@ public class AuthService { @Value("${auth.jwt.token.email.cookie.key:emailAuthToken}") private String authTokenCookieKey; - @Value("${auth.mail.title}") - private String emailAuthMailTitle; - - @Value("${auth.mail.content.header}") - private String emailAuthMailContentHeader; - private final EmailAuthMailCacheRepository emailAuthMailCacheRepository; private final AuthTokenService authTokenService; private final MailServiceInterface mailServiceInterface; @@ -43,11 +37,10 @@ public AuthService(EmailAuthMailCacheRepository emailAuthMailCacheRepository, Au this.mailServiceInterface = mailServiceInterface; } - public void sendEmailAuthMail(String userEmail) { + public void sendEmailAuthMail(String userEmailAddress) { String authCode = AuthCodeUtils.createAuthNumberCode(authCodeLength); - Email email = new Email(emailAuthMailTitle, emailAuthMailContentHeader + authCode, userEmail); - mailServiceInterface.sendMail(email); - saveAuthInfoFromEmailAuthMailCache(userEmail, authCode); + mailServiceInterface.sendMail(userEmailAddress, new SignUpAuthMailForm(authCode)); + saveAuthInfoFromEmailAuthMailCache(userEmailAddress, authCode); } private void saveAuthInfoFromEmailAuthMailCache(String userEmail, String authCode) { diff --git a/src/main/java/se/ton/t210/service/mail/JavaMailServiceImpl.java b/src/main/java/se/ton/t210/service/mail/JavaMailServiceImpl.java index 353b5f2..4e9ff5f 100644 --- a/src/main/java/se/ton/t210/service/mail/JavaMailServiceImpl.java +++ b/src/main/java/se/ton/t210/service/mail/JavaMailServiceImpl.java @@ -6,15 +6,15 @@ import org.springframework.mail.javamail.JavaMailSender; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import se.ton.t210.service.mail.form.Email; +import se.ton.t210.service.mail.form.MailForm; @ConditionalOnProperty(value = "auth.mail.enable.mode", havingValue = "true") @Async @Component public class JavaMailServiceImpl implements MailServiceInterface { - @Value("${auth.mail.fromAddress:cspft@gmail.com}") - private String fromAddress; + @Value("${auth.mail.fromAddr:cspft@gmail.com}") + private String fromAddr; private final JavaMailSender mailSender; @@ -23,19 +23,19 @@ public JavaMailServiceImpl(JavaMailSender mailSender) { } @Override - public void sendMail(Email email) { - sendMail(email, fromAddress); - } - - public void sendMail(Email email, String fromAddress) { + public void sendMail(String userAddr, MailForm form, String fromAddr) { final SimpleMailMessage mailMessage = new SimpleMailMessage(); - mailMessage.setTo(email.getToAddress()); - mailMessage.setSubject(email.getTitle()); - mailMessage.setText(email.getContent()); - mailMessage.setFrom(fromAddress); + mailMessage.setTo(userAddr); + mailMessage.setSubject(form.title()); + mailMessage.setText(form.body()); + mailMessage.setFrom(fromAddr); sendMail(mailMessage); } + public void sendMail(String userAddr, MailForm form) { + sendMail(userAddr, form, fromAddr); + } + public void sendMail(SimpleMailMessage mailMessage) { mailSender.send(mailMessage); } diff --git a/src/main/java/se/ton/t210/service/mail/LogMailServiceImpl.java b/src/main/java/se/ton/t210/service/mail/LogMailServiceImpl.java index c3830b4..248d4d7 100644 --- a/src/main/java/se/ton/t210/service/mail/LogMailServiceImpl.java +++ b/src/main/java/se/ton/t210/service/mail/LogMailServiceImpl.java @@ -5,7 +5,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; -import se.ton.t210.service.mail.form.Email; +import se.ton.t210.service.mail.form.MailForm; @ConditionalOnProperty(value = "auth.mail.enable.mode", havingValue = "false", matchIfMissing = true) @Component @@ -13,19 +13,19 @@ public class LogMailServiceImpl implements MailServiceInterface { private static final Logger LOGGER = LoggerFactory.getLogger(LogMailServiceImpl.class); - @Value("${auth.mail.fromAddress:cspft@gmail.com}") - private String fromAddress; + @Value("${auth.mail.fromAddr:cspft@gmail.com}") + private String fromAddr; @Override - public void sendMail(Email email) { - sendMail(email, fromAddress); + public void sendMail(String userAddr, MailForm form, String fromAddr) { + LOGGER.info("from : " + fromAddr + "\n"); + LOGGER.info("title : " + form.title() + "\n"); + LOGGER.info("content : " + form.body() + "\n"); + LOGGER.info("to : " + userAddr); } @Override - public void sendMail(Email email, String fromAddress) { - LOGGER.info("from : " + fromAddress + "\n"); - LOGGER.info("title : " + email.getTitle() + "\n"); - LOGGER.info("content : " + email.getContent() + "\n"); - LOGGER.info("to : " + email.getToAddress()); + public void sendMail(String userAddr, MailForm form) { + sendMail(userAddr, form, fromAddr); } } diff --git a/src/main/java/se/ton/t210/service/mail/MailServiceInterface.java b/src/main/java/se/ton/t210/service/mail/MailServiceInterface.java index 216a52f..8cea916 100644 --- a/src/main/java/se/ton/t210/service/mail/MailServiceInterface.java +++ b/src/main/java/se/ton/t210/service/mail/MailServiceInterface.java @@ -1,10 +1,10 @@ package se.ton.t210.service.mail; -import se.ton.t210.service.mail.form.Email; +import se.ton.t210.service.mail.form.MailForm; public interface MailServiceInterface { - void sendMail(Email email); + void sendMail(String userAddr, MailForm mailForm, String fromAddr); - void sendMail(Email email, String fromAddress); + void sendMail(String userAddr, MailForm mailForm); } diff --git a/src/main/java/se/ton/t210/service/mail/form/AuthEmailForm.java b/src/main/java/se/ton/t210/service/mail/form/AuthEmailForm.java deleted file mode 100644 index a1d416f..0000000 --- a/src/main/java/se/ton/t210/service/mail/form/AuthEmailForm.java +++ /dev/null @@ -1,18 +0,0 @@ -package se.ton.t210.service.mail.form; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -@Component -public class AuthEmailForm { - - @Value("${auth.mail.title}") - private String emailAuthMailTitle; - - @Value("${auth.mail.content.header}") - private String emailAuthMailContentHeader; - - public Email creatEmail(String content, String toAddress) { - return new Email(emailAuthMailTitle, emailAuthMailContentHeader + content, toAddress); - } -} diff --git a/src/main/java/se/ton/t210/service/mail/form/Email.java b/src/main/java/se/ton/t210/service/mail/form/Email.java deleted file mode 100644 index e3a6284..0000000 --- a/src/main/java/se/ton/t210/service/mail/form/Email.java +++ /dev/null @@ -1,19 +0,0 @@ -package se.ton.t210.service.mail.form; - -import lombok.Getter; - -@Getter -public class Email { - - private final String title; - - private final String content; - - private final String toAddress; - - public Email(String title, String content, String toAddress) { - this.title = title; - this.content = content; - this.toAddress = toAddress; - } -} diff --git a/src/main/java/se/ton/t210/service/mail/form/MailForm.java b/src/main/java/se/ton/t210/service/mail/form/MailForm.java new file mode 100644 index 0000000..7e7ab57 --- /dev/null +++ b/src/main/java/se/ton/t210/service/mail/form/MailForm.java @@ -0,0 +1,8 @@ +package se.ton.t210.service.mail.form; + +public interface MailForm { + + String title(); + + String body(); +} diff --git a/src/main/java/se/ton/t210/service/mail/form/SignUpAuthMailForm.java b/src/main/java/se/ton/t210/service/mail/form/SignUpAuthMailForm.java new file mode 100644 index 0000000..ad3196a --- /dev/null +++ b/src/main/java/se/ton/t210/service/mail/form/SignUpAuthMailForm.java @@ -0,0 +1,20 @@ +package se.ton.t210.service.mail.form; + +public class SignUpAuthMailForm implements MailForm { + + private final String authCode; + + public SignUpAuthMailForm(String authCode) { + this.authCode = authCode; + } + + @Override + public String title() { + return "CSPFT Email Authentication"; + } + + @Override + public String body() { + return "Email Authentication code is : " + authCode; + } +} diff --git a/src/main/resources/properties/prod/mail.properties b/src/main/resources/properties/prod/mail.properties index 002cfa1..3709d60 100644 --- a/src/main/resources/properties/prod/mail.properties +++ b/src/main/resources/properties/prod/mail.properties @@ -8,10 +8,8 @@ spring.mail.properties.mail.smtp.starttls.enable=true ## mail enable mode auth.mail.enable.mode=true -## mail phrase -auth.mail.title=CSPFT Email Authentication -auth.mail.content.header=Email Authentication code is : -auth.mail.fromAddress=cspft210@gmail.com +## mail fromAddr +auth.mail.fromAddr=cspft210@gmail.com # valid time - 3 min auth.mail.valid.time=180