Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Refactor/#415] 이메일 전송 목적에 따른 이메일 전송 프로바이더 분리 및 전송 프로바이더 설정할 수 있도록 수정 그리고 전송 이메일 식별자 추가 #416

Merged
merged 9 commits into from
Sep 26, 2024

Conversation

belljun3395
Copy link
Collaborator

@belljun3395 belljun3395 commented Sep 20, 2024

🎫 연관 이슈

resolved: #415

💁‍♂️ PR 내용

  • 이메일 전송 목적에 따른 이메일 전송 프로바이더 분리 및 전송 프로바이더 설정할 수 있도록 수정 그리고 전송 이메일 식별자 추가

🙏 작업

  • 전송 이메일 식별자 추가를 위해 이메일 전송 프로바이더 분리하였습니다
  • 기본으로 설정된 이메일 전송 프로바이더 말고 전송시 프로바이더를 설정할 수 있도록 수정하였습니다.
  • 전송한 이메일 식별 위한 식별자를 추가하였습니다.

🙈 PR 참고 사항

스크린샷 2024-09-20 오후 4 04 50

SES에서 제공하는 값은 고유하다고 하고

스크린샷 2024-09-20 오후 4 06 04

JavaMailSender의 경우에는 고유하다는 것을 보장한다는 코멘트는 없네요..

📸 스크린샷

스크린샷 2024-09-20 오후 3 48 58

JavaMailSender messageId 예

🤖 테스트 체크리스트

  • 체크 미완료
  • 체크 완료

@belljun3395 belljun3395 requested a review from hun-ca as a code owner September 20, 2024 07:03
@github-actions github-actions bot added the refactor 기존 기능에 대해 개선할 때 사용됩니다. label Sep 20, 2024
Comment on lines +4 to +7
/**
* @return 전송한 이메일 식벽을 위한 값
*/
fun sendEmail(from: String, to: String, subject: String, message: String): String
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전송한 이메일 식별을 위한 반환 값 추가

Comment on lines +53 to +59

/**
* Default configuration set name is "few-configuration-set"
*/
fun getWithConfigurationSetName(): String {
return "few-configuration-set"
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aws에서 구성 세트 구분을 위해 추가하였습니다.

Comment on lines +14 to +17
override fun getWithConfigurationSetName(): String {
return "few-article-configuration-set"
}
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아티클 전송을 구분하기 위해 추가하였습니다.

Comment on lines +12 to +25
fun send(args: T, emailSendProvider: EmailSendProvider? = null): String {
val from = mailProperties.username
val to = args.to
val subject = args.subject
val message = getHtml(args)
emailSendProvider.sendEmail("FEW Letter <$from>", to, subject, message)
return emailSendProvider?.sendEmail("FEW Letter <$from>", to, subject, message)
?: run {
defaultEmailSendProvider.sendEmail(
"FEW Letter <$from>",
to,
subject,
message
)
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

메서드에 프로바이더를 넣는다면 넣은 프로바이더로 전송하도록 수정하였습니다.


runCatching {
amazonSimpleEmailService.sendEmail(sendEmailRequest)
amazonSimpleEmailService.sendEmail(sendEmailRequest).messageId
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기의 messageId가 AWS의 emailMessageId가 되어서 메일을 구분할 수 있어요!

@belljun3395 belljun3395 merged commit dc11b63 into dev Sep 26, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor 기존 기능에 대해 개선할 때 사용됩니다.
Projects
None yet
1 participant