크무톡톡 프로젝트
SMTP 서버 구축
한뜨응규
2024. 1. 4. 15:16
반응형
최근에 서비스를 만들다보면 메일 서비스를 만들어야 하는 경우가 있었다.
앞으로도 쭉 사용을 할 거 같고 구글 메일에서 설정하는 부분을 자주 까먹어서 이번에 기록해두려고 한다.
- 구글 이메일 설정
일단 서버를 구축하기 전에 구글 계정을 설정해주어야 한다.
구글의 계정설정 -> 보안
여기서 2단계 인증을 한 후 앱 비밀번호를 만들어준다.
나중에 스프링부트에서 사용해야 하기 때문에 이 때 만들어진 앱 비밀번호는 어디에다가 기록해두도록 한다.
그리고 Gmail 설정 -> 전달 및 POP/IMAP에서
IMAP 사용으로 변경 후 저장해준다.
- SpringBoot 설정
이제 스프링부트에서 메일을 보낼 수 있는 서비스를 만들어보자.
일단 application.yml에 계정에 대한 정보를 입력한다.
spring.mail.host -> 서버 호스트
spring.mail.port -> 서버 포트 번호
spring.mail.username -> 서버 아이디
spring.mail.password -> 발급받은 앱 비밀번호 12자리
아래는 starttls 설정으로 안하면 관련된 에러가 발생할 것이다.
이제 전송하는 코드를 작성해보자.
일단 테스트 용으로 간단하게 API로 이메일을 받고 테스트 내용을 보내는 코드를 작성해 볼 것이다.
보낼 때는 javaMailSender를 이용한다.
@RestController
@RequiredArgsConstructor
class EmailController(
val javaMailSender: JavaMailSender) {
@GetMapping("/api/mail")
fun send(email: String){
val mimeMessage = javaMailSender.createMimeMessage()
val helper = MimeMessageHelper(mimeMessage, true, "UTF-8")
helper.setTo(email)
helper.setSubject("테스트 용입니다.")
helper.setText("테스트 드래곤입니다.")
javaMailSender.send(mimeMessage)
}
}
이렇게 작성을 끝내고 이제 Swagger로 테스트를 해보자.
이렇게 전송을 하면
잘 오는 것을 확인할 수 있다.