최근 Java 메일 SSL을 수행할 때 문제가 발생했습니다. 시스템이 일정 시간 동안 실행된 후에는 JavaMail을 사용하여 이메일을 수신할 수 없습니다.
오류 메시지는 다음과 같습니다.
javax.mail.MessagingException: Connect failed;
중첩 예외:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX 경로 구축 실패: sun.security.provider.certpath.SunCertPathBuilderException: 요청한 대상
at com에 대한 유효한 인증 경로를 찾을 수 없습니다. sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:148)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect( Service.java:105)
또는 SSL을 활성화하지 않는 메일 서버에 다음 오류가 있습니다.
nested 예외는 다음과 같습니다.
java.net.ConnectException: 연결이 거부되었습니다.
at com.sun.mail .pop3.POP3Store.protocolConnect(POP3Store.java:148 )
메일서버에 텔넷으로 접속하는데 사용자명과 비밀번호에는 문제가 없는 것 같습니다.
Properties props = System.getProperties()를 MailSession 생성 시 사용했는데, 이를 출력해 보니 SSL 확인을 사용하지 말았어야 했는데 확인 정보가 표시되지 않았어야 했기 때문에 이제 POP3가 나올 때마다 오류가 발생했습니다. 링크 중에 SSL 링크가 필요하지 않으며 이러한 속성을 제거하면 문제가 사라집니다.
마침내 System.getProperties()를 변경한 사람이 발견되었습니다. 동일한 Tomcat에서 실행 중인 다른 시스템이 있는 것으로 나타났습니다. 해당 시스템에서 사용하는 메일 서버는 이메일을 보내고 받기 위해 SSL 인증을 사용하며 30분마다 한 번씩 이메일을 받습니다. 프로그램으로 인해 위의 오류는 작성이 엄격하지 않았기 때문에 발생했습니다. 프로그램을 개선한 후 마침내 두 시스템이 하나의 TOMCAT에서 공존할 수 있게 되었습니다.
위 내용은 Java Mail에서 SSL 연결과 비SSL 연결을 모두 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!