Could not convert socket to TLS 오류

AWS SES로 이메일 전송 게시물에 포스팅한 방법처럼 이메일 전송 준비를 마쳤는데 Could not convert socket to TLS 라는 오류가 발생해서 메일 전송에 실패했었다.

이 오류를 해결하기 위해서 두 가지를 수정했다.

  1. 먼저 java.mail jar을 최신으로 업데이트를 해준다.

  2. 세션을 생성할 때 필요한 설정 부분에 props.put("mail.smtp.ssl.trust", "*"); 를 추가해준다.

1
2
3
4
5
6
7
// 세션을 생성할 때 필요한 메일 연결에 관련된 설정 정보를 설정
Properties props = System.getProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.port", PORT);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.trust", "*"); // 여기에 추가하면 된다.

1번의 방법대로 jar파일을 최신으로 업데이트 해주었지만 계속해서 같은 오류가 발생했었다. 나는 2번 방법처럼 props.put("mail.smtp.ssl.trust", "*"); 를 추가해 주었더니 오류를 해결할 수 있었다.
이 오류는 메일을 보내는 메일이 gmail.com이나 그 외에 다른 메일을 사용할 때 나타났다. gmail.com 이나 다른 메일을 사용해서 메일을 전송하려면 위 코드를 추가 해주어야한다.