发送电子邮件时显示错误:
javax.mail.MessagingException: Could not connect to SMTP host: smtp8.net4india.com, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
我的电子邮件设置是:
String mailProcessed = "";
Properties props = new Properties();
props.put("mail.smtp.host", "smtp8.net4india.com");
props.put("mail.smtp.socketFactory.port", "25");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.starttls.enable", "true");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(frmMail, frmPass);
}
});
答案 0 :(得分:0)
删除props.put("mail.smtp.starttls.enable", "true");
并添加props.put("mail.smtp.ssl.enable", "true");
您使用的是SSL,而不是TLS。
还要确保邮件服务器支持SSL。
还要确保邮件服务器正在使用TCP协议SMTP
,他们可能正在使用IMAP
或POP3
。
在这种情况下,您需要更改他们使用的协议引用的属性,即:
props.put("mail.pop3.socketFactory.port", "25");
props.put("mail.pop3.socketFactory.class","javax.net.ssl.SSLSocketFactory");
您正在使用getDefaultInstance
进行会话,但如果会话已经建立,则会返回现有会话,您的属性将会丢失。
检查常见错误页面,它拥有一切: https://javaee.github.io/javamail/FAQ#commonmistakes