SMTP 설정

이메일 인증을 구현하기 위해서는 SMTP 설정을 해야한다. 아래의 링크를 참고하여 설정하자.

네이버 : https://chasos.tistory.com/37

구글 : https://kincoding.com/entry/Google-Gmail-SMTP-사용을-위한-세팅

의존성 추가

<dependency>
    	<groupId>com.sun.mail</groupId>
    	<artifactId>jakarta.mail</artifactId>
    	<version>1.6.3</version>
	</dependency>
		
		<dependency>
    		<groupId>org.springframework</groupId>
   		 	<artifactId>spring-context-support</artifactId>
   			<version>5.3.9</version>
		</dependency>

jakarta.mail : JavaMail API를 제공, 메일을 보내고 받을 수 있게 해주는 라이브러리로 SMTP, POP3, IMAP 같은 메일 전송 프로토콜을 처리하며 해당 라이브러리가 있어야 JavaMailSender, MimeMessage 등을 사용할 수 있다. 예전에는 javax.mail로 불렸었고 jakarta버전이 최신이다.

spring-context-support : 스프링에서 JavaMailSender, MailSender, MimeMessageHelper 등을 자동으로 등록해주기 위해 필요한 지원라이브러리(한마디로 서포터)로 스프링의 JavaMailSenderImpl 클래스를 포함하고 있다고 한다. 이 의존성이 있어야 @Autowired로 JavaMailSender를 사용할 수 있다.

부트에서는 jakarta.mail + spring-context-support + Spring Boot 설정 자동화를 다음의 의존성 하나로 해결할 수 있다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

application.properties에 설정

# 이메일 인증
spring.mail.host=smtp.naver.com
spring.mail.port=465
[email protected]
spring.mail.password=gami1234
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.protocol=smtp
spring.mail.debug=true

spring.mail.host : 메일 서버의 호스트 이름으로 이메일을 보낼 때 사용할 SMTP 서버의 주소를 지정