팀프로젝트/SpringBoot

스프링 부트 팀플) 20240313_이메일 시스템 완성

일일일코_장민기 2024. 3. 13. 17:39
728x90

회원가입 할 때 이메일 인증용 메일
회원가입 시 출력되는 환영 메일
비밀번호 찾기 시 보내지는 메일

 

 

 

 

 

 

 

MailController 일부

//단순 메일 전송

@PostMapping("/joinEmail")

public String joinEmail(String userEmail, String userName) throws Exception {

String authNumber = makeRandomNumber();

Map<String, String> changeData = new HashMap<>();

 

System.out.println(userEmail);

System.out.println(userName);

 

//******************복사 후 수정하는 부분******************

String emailPath = "static/emailFiles/JoinEmail.html";

 

String EMAIL_SUBJECT = "[회원가입알림] 문화인의 밤을 이용해주셔서 감사합니다.";

 

changeData.put("##유저_이름##", userName);

changeData.put("##인증번호##", authNumber);

changeData.put("##인증번호_유효기간##", expireDate);

 

String innerImageName = "JoinNumber";

String innerImagePath = "/static/images/email/JoinNumber.png";

//******************복사 후 수정하는 부분******************

 

String TO_EMAIL = userEmail;

String EMAIL_BODY = serv.EmailBody(emailPath, changeData);

 

serv.sendEmail(FROM_EMAIL, TO_EMAIL, EMAIL_SUBJECT, EMAIL_BODY, innerImageName, innerImagePath);

return "send";

}

 

MailService 일부

//이메일 전송 함수(수정 X)(람다식)

public void sendEmail(String from, String to, String subject, String body, String innerImageName, String innerImagePath) throws Exception {

javaMailSender.send(

(MimeMessagePreparator) mimeMessage -> {

MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true); // true: 멀티파트 메세지를 사용

messageHelper.setFrom(from);

messageHelper.setTo(to);

messageHelper.setSubject(subject);

messageHelper.setText(body, true); // true: html을 사용

messageHelper.addInline(innerImageName, new ClassPathResource(innerImagePath));

});

}

 

 

 

 

 

 

진짜 쉽지 않았다...
특히 백그라운드 이미지...