From b581566221c7c0f30196242182482130b4408c09 Mon Sep 17 00:00:00 2001 From: oznchex <114240463+oznchex@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:50:35 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20private=20->=20private=20matching=20?= =?UTF-8?q?request=20mail=20auto=20send=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mail/presentation/MailController.java | 23 ------- .../linkit/mail/service/MailService.java | 36 ++++++++++- .../linkit/mail/service/MailServiceImpl.java | 60 ++++++++++--------- .../presentation/MatchingController.java | 13 +++- .../matching/service/MatchingService.java | 17 ++++-- 5 files changed, 88 insertions(+), 61 deletions(-) delete mode 100644 src/main/java/liaison/linkit/mail/presentation/MailController.java diff --git a/src/main/java/liaison/linkit/mail/presentation/MailController.java b/src/main/java/liaison/linkit/mail/presentation/MailController.java deleted file mode 100644 index 019e022d..00000000 --- a/src/main/java/liaison/linkit/mail/presentation/MailController.java +++ /dev/null @@ -1,23 +0,0 @@ -package liaison.linkit.mail.presentation; - -import liaison.linkit.mail.service.MailService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequiredArgsConstructor -@Slf4j -@RequestMapping(value = "/api/mail") -public class MailController { - - private final MailService mailService; - - @PostMapping("") - public void mailConfirm(@RequestParam(name = "email") String email) throws Exception { - mailService.sendSimpleMessage(email); - } -} diff --git a/src/main/java/liaison/linkit/mail/service/MailService.java b/src/main/java/liaison/linkit/mail/service/MailService.java index 207a0b68..bd89bc2b 100644 --- a/src/main/java/liaison/linkit/mail/service/MailService.java +++ b/src/main/java/liaison/linkit/mail/service/MailService.java @@ -1,6 +1,38 @@ package liaison.linkit.mail.service; +import java.time.LocalDateTime; + public interface MailService { - // 메일 발송 - void sendSimpleMessage(String to)throws Exception; + + // 1. 내 이력서 -> 내 이력서 매칭 요청 보낸 경우 + void mailPrivateToPrivate( + final String receiverName, + final String senderName, + final LocalDateTime requestDate, + final String requestMessage + ) throws Exception; + + /* + 1. 수신자 이름 - receiverName + 2. 발신자 이름 - senderName + 3. 매칭 요청 발생 날짜 - requestDate + 4. 매칭 요청 보낼 때 메시지 - requestMessage + */ + + + + + + +// // 2. 내 이력서 -> 팀 소개서 매칭 요청 보낸 경우 +// void mailPrivateToTeam() throws Exception; +// // 3. 팀 소개서 -> 내 이력서 매칭 요청 보낸 경우 +// void mailTeamToPrivate() throws Exception; +// // 4. 팀 소개서 -> 팀 소개서 매칭 요청 보낸 경우 +// void mailTeamToTeam() throws Exception; +// +// // 5. 내 이력서 관련 - 매칭 성사된 경우 +// void mailSuccessPrivate() throws Exception; +// // 6. 팀 소개서 관련 - 매칭 성사된 경우 +// void mailSuccessTeam() throws Exception; } diff --git a/src/main/java/liaison/linkit/mail/service/MailServiceImpl.java b/src/main/java/liaison/linkit/mail/service/MailServiceImpl.java index 0f2c9149..6a04f359 100644 --- a/src/main/java/liaison/linkit/mail/service/MailServiceImpl.java +++ b/src/main/java/liaison/linkit/mail/service/MailServiceImpl.java @@ -10,7 +10,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.io.UnsupportedEncodingException; +import java.time.LocalDateTime; @Service @RequiredArgsConstructor @@ -22,35 +22,40 @@ public class MailServiceImpl implements MailService { @Value("${naver.id}") private String id; + // 1. 내 이력서 -> 내 이력서 매칭 요청 보낸 경우 @Override - public void sendSimpleMessage(String to) throws Exception { - MimeMessage message = createMessage(to); // "to" 로 메일 발송 - log.info("********생성된 메시지******** => " + message); + public void mailPrivateToPrivate( + final String receiverName, + final String senderName, + final LocalDateTime requestDate, + final String requestMessage + ) throws Exception { + final MimeMessage mimeMessage = createPrivateToPrivateMail( + receiverName, + senderName, + requestDate, + requestMessage + ); try { - emailSender.send(message); + emailSender.send(mimeMessage); } catch (Exception e) { e.printStackTrace(); throw new IllegalArgumentException(); } } - private MimeMessage createMessage(String to) throws MessagingException, UnsupportedEncodingException { - log.info("메일받을 사용자 : " + to); - - MimeMessage message = emailSender.createMimeMessage(); - message.addRecipients(Message.RecipientType.TO, to); - message.setSubject("관리자 회원가입을 위한 이메일 인증코드"); - - // Define dynamic content - String recipientName = "Recipient Name"; // e.g., fetched from user info - String senderName = "Sukki"; - String requestDate = "7월 12일"; - String matchingRequestMessage = "매칭 요청 본문"; - String profileSummary = "홍익대학교 시각디자인과 재학 중 초기 창업팀 근무 경험(5개월)"; - - // Use String.format() to insert variables into the message body - String msgg = String.format(""" + private MimeMessage createPrivateToPrivateMail( + final String receiverName, + final String senderName, + final LocalDateTime requestDate, + final String requestMessage + ) throws MessagingException { + final MimeMessage mimeMessage = emailSender.createMimeMessage(); + mimeMessage.addRecipients(Message.RecipientType.TO, receiverName); + mimeMessage.setSubject("[링킷] 내 이력서 매칭 요청 알림"); + + final String msgg = String.format("""