카테고리 없음

Java Spring boot SMTP 설정

최종군 2024. 11. 1. 15:27

SMTP란 Simple Mail Transfer Protocol의 약자로 

이메일을 전송하기 위한 표준 프로토콜이다.

 

SMTP는 인터넷에서 이메일 메세지를 전송하는데 사용되며,

주로 메일 서버 간의 통신에 활용이된다

 

SMTP의 주요 기능 

 

이메일 전송 : 이메일 클라이언트에서 이메일 서버로 메세지를 전송하는 역할을 한다.

 

메일 서버 간 통신 : 이메일이 전송될 때, 발신자의 메일 서버에서 수신자의 메일 서버로 

메세지를 전달 한다. 

 

전송 상태 확인 : SMTP는 이메일이 성공적으로 전송되었는 지 확인할 수 있는 기능을 제공한다.

 

 

 

application.properties 에 설정된 SMTP

 

spring.application.name=khEmail 

애플리케이션의 이름을 지정한다. 이 이름은 로그, 모니터링 도구 및 서비스 등록에 사용될 수 있다.

 

spring.mail.host= smtp.gmail.com 

Gmail의 SMTP 서버 주소를 지정한다. 이메일을 보내기 위해 현재 주소로 연결이 된다. 

 

spring.mail.port=587

SMTP 서버에 연결할 때 사용할 포트를 지정한다. 

 

SMTP 관련 포트 :

1. 포트 25 기본 SMTP 포트로 주로 메일 서버 간의 전송에 활용

2. 포트 587 클라이언트가 메일 서버에 연결할 때 사용 TLS를 통해서 보안을 강화한다.

3. 포트 465: SSL(보안 소켓 계층)을 통한 암호화된 SMTP 전송에 사용되기도 한다. 

 

spring.mail.username= 이메일 주소

이메일을 보낼 때 사용할 계정의 이메일 주소이다. 

 

spring.mail.password= 

이메일 비밀번호이다 인증을 위해 사용된다. 

 

spring.mail.properties.mail.smtp.auth=true 

SMTP 서버에 인증을 요구한다. true로 설정하면 사용자 이름과 비밀번호를 사용하여 

서버에 인증한다. 

 

spring.mail.properties.mail.smtp.starttls.enable=true

TLS를 통해 보안 연결을 사용하도록 설정합니다. 해당 옵션을 true로 설명하면, 

SMTP 서버와의 연결이 보안 프로토콜을 통해 이루어지게 된다. 

 

true와 false 차이점 : 

spring.mail.properties.mail.smtp.auth=false

인증 비활성화 상태가 된다 SMTP 서버에 인증을 요구하지 않게 된다. 

보안 문제가 생길 수 있다. gmail 경우 인증 없는 연결을 허용하지 않으므로,

이메일 전송이 실패할 가능성이 생기게 된다. 

 

용도 제한 : 일부 사설 SMTP 서버에서는 인증 없이 메일을 보내는 것을 허용할 수 있지만, 

이는 보안상 위험할 수 있다.