我一直在使用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

10-08 16:31