我一直在使用ZOHO SMTP服务器发送电子邮件。但它在localhost服务器中正常工作,将我的代码部署到AWS服务器中时却无法正常工作,它发出如下异常。
javax.mail.MessagingException:无法连接到SMTP主机:smtp.zoho.com,端口:465;
嵌套的异常是:
javax.net.ssl.SSLHandshakeException:没有适当的协议(已禁用协议或密码套件不合适)
我的Java代码是:-
Properties prop = new Properties();
prop.put("mail.smtp.host", "smtp.zoho.com");
prop.put("mail.smtp.port", 465);
prop.setProperty("mail.smtp.user", username);
prop.setProperty("mail.smtp.password", password);
prop.setProperty("mail.smtp.auth", "true");
// prop.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.smtp.socketFactory.fallback", "false");
prop.setProperty("mail.smtp.socketFactory.port", "465");
// prop.put("mail.smtp.starttls.enable", "true");
// prop.setProperty("mail.smtps.tls.enable", "true");
上面的代码在我的本地主机服务器(Tomcat)中工作。
谁能帮忙解决这个问题。
最佳答案
465是SSL端口。看起来AWS中缺少ZOHO的SSL证书。从Zoho下载/获取证书,并将其导入到AWS的Keystore中。它应该解决问题。
从类似的问题和可能的解决方案中检查https://help.zoho.com/portal/community/topic/ssl-security-certificate-updated-pop-imap-and-smtp-servers。