diff --git a/build.gradle b/build.gradle index c7a6b174..adc18db0 100644 --- a/build.gradle +++ b/build.gradle @@ -97,6 +97,9 @@ dependencies { // Google Firebase Admin implementation 'com.google.firebase:firebase-admin:9.2.0' + // Spring Mail + implementation 'org.springframework.boot:spring-boot-starter-mail' + } tasks.named('test') { diff --git a/src/main/java/com/on/server/global/mail/MailController.java b/src/main/java/com/on/server/global/mail/MailController.java new file mode 100644 index 00000000..2103694d --- /dev/null +++ b/src/main/java/com/on/server/global/mail/MailController.java @@ -0,0 +1,23 @@ +package com.on.server.global.mail; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v1/mail") +public class MailController { + + private final MailService mailService; + + @GetMapping("/test") + public Integer sendAuthNumMail( + @RequestHeader String targetMailAddr + ) { + return mailService.sendAuthNumMail(targetMailAddr); + } + +} diff --git a/src/main/java/com/on/server/global/mail/MailService.java b/src/main/java/com/on/server/global/mail/MailService.java new file mode 100644 index 00000000..03c5d3db --- /dev/null +++ b/src/main/java/com/on/server/global/mail/MailService.java @@ -0,0 +1,57 @@ +package com.on.server.global.mail; + +import com.on.server.global.common.ResponseCode; +import com.on.server.global.common.exceptions.InternalServerException; +import com.on.server.global.util.StaticValue; +import jakarta.mail.MessagingException; +import jakarta.mail.internet.MimeMessage; +import lombok.RequiredArgsConstructor; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.stereotype.Service; + +@Service +@Configuration +@RequiredArgsConstructor +public class MailService { + + private final JavaMailSender javaMailSender; + + @Value("${spring.mail.sender}") + private static String senderEmail; + + public Integer sendAuthNumMail(String targetMailAddr) { + Integer number = createNumber(); + + MimeMessage message = CreateMail( + targetMailAddr, + StaticValue.AUTH_NUMBER_MAIL_SUBJECT, + StaticValue.AUTH_NUMBER_MAIL_BODY + "