Email email = new SimpleEmail();
String authuser = "[email protected]";
String authpwd = "*******";
// Very Important, Don't use email.setAuthentication()
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator(authuser, authpwd));
email.setDebug(true); // true if you want to debug
email.setHostName("smtp.gmail.com");
email.getMailSession().getProperties().put("mail.smtp.auth", "true");
email.getMailSession().getProperties().put("mail.debug", "true");
email.getMailSession().getProperties().put("mail.smtp.port", "587");
email.getMailSession().getProperties().put("mail.smtp.socketFactory.port", "587");
email.getMailSession().getProperties().put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
email.getMailSession().getProperties().put("mail.smtp.socketFactory.fallback", "false");
email.getMailSession().getProperties().put("mail.smtp.starttls.enable", "true");
email.setFrom("[email protected]", "SenderName");
email.setSubject("TestMail");
email.setMsg("This is a test mail?");
email.addTo("[email protected]", "ToName");
email.setTLS(true);
email.send();
1
A
답변
0
모두를 제거하십시오 email.getMailSession().getProperties()
- 그들은 필요하지 않으며 설치를 오염시킬 수 있습니다.
그런 다음 포트를 설정하는 줄을 제거하십시오. (email.setSmtpPort(587);
)
+0
email.getMailSession(). getProperties()를 모두 제거했지만 여전히 STARTTLS 명령 오류가 발생합니다. 또한 setSSL (true)을 수행 한 다음 오류 클래스를 가져옵니다. javax.mail.MessagingException : SMTP 호스트에 연결할 수 없습니다. smtp.gmail.com, port : 465; 중첩 예외는 다음과 같습니다. java.net.SocketException : 지정된 클래스를 찾을 수 없습니다. java.security.PrivilegedActionException : java.lang.ClassNotFoundException : com.ibm.websphere.ssl.protocol.SSLSocketFactory –
답변을 업데이트합니다. 포트를 설정할 필요가 없습니다. – Bozho