[ SMTP 메일 전송 ] Could not convert socket to TLS
SMTP 서버 정보를 받고, 이메일 전송 테스트를 진행했다.
간단하게 컨트롤러만 만들어서 postman으로 날려봄
이런 상황이 발생했고, 이메일은 전송되지않음
도메인 접속에 실패하고 ping도 안가는 상황,,
??????왜그랴
는 이제 찾아보자
써칭해본결과
PKIX path building failed 관련에러
-> 서버의 인증서를 다운로드하여 키스토어에 추가해야한다? crt 파일을 만들어서 넣고 인증 어쩌구저쩌구 했으나 안됨
tls버전이 안맞는다?
-> 보안문제로 기존에 지원하던 TLS버전이 지원중단되서 TLS버전이 1.0이나 1.1로 사용되는 경우가있다는것을알게됨
port문제?
-> 예전에 사용했던거나 보안문제 등 여러가지 상황에 따라 25, 465, 587, 2525 등이 사용됨. 표준은 587이맞음.
등등,,
GPT는 이상한 대답을 자꾸해주었고ㅜ
구글링했을 때 나처럼
SMTP서버를 받은게아니라 gmail을 쓰는 경우들도 많았고, java 나 spring 버전이 나랑 같은 예시는 없어서
이것저것 검색해 따라해보다가 해결함 ㅋㅋ
잠시동안의 여러가지 삽질을 한 결과
해결한 방법
config에 아래 두 줄을 추가해줌
주황색 네모는 host들어가면됨
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
: JavaMail이 TLS 1.2 프로토콜을 사용하도록 설정해 TLS 버전 문제가 있을 때 해결 방법이 될 수 있다해서 추가함.
props.put("mail.smtp.ssl.trust", "mail.w.st.co.kr");
: 특정 호스트에 대해 SSL 인증서 경고를 무시하고 연결을 허용하도록 설정하는 부분.
+ application.yml도 첨부합니다