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 서버에서는 인증 없이 메일을 보내는 것을 허용할 수 있지만,
이는 보안상 위험할 수 있다.