【问题标题】:How to send ZOHO SMTP server mail in java?如何在 java 中发送 ZOHO SMTP 服务器邮件?
【发布时间】:2020-01-08 05:32:00
【问题描述】:

我一直使用 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)中运行。 谁能帮忙解决这个问题。

【问题讨论】:

    标签: java smtp


    【解决方案1】:

    465 是 SSL 端口。 AWS 中似乎缺少来自 ZOHO 的 SSL 证书。从 Zoho 下载/获取证书并将其导入 AWS 的 Keystore。它应该可以解决问题。 检查https://help.zoho.com/portal/community/topic/ssl-security-certificate-updated-pop-imap-and-smtp-servers 是否有类似问题和可能的解决方案。

    【讨论】:

    • 谢谢 NaveenBharadwaj。你能告诉我如何从 Zoho 下载/获取证书并将其导入 AWS 的 Keystore。从 ZOHO 获取 SSL 证书是否有任何流程?
    • 您需要检查 AWS 中的现有证书。当我阅读一些文章时,需要购买 Zoho SSL 证书。它不是免费的。可能 AWS 已经为您完成了。有必要检查。如果没有,则需要额外付费。
    • 重点是,当您从 localhost 连接时,它使用的是 HTTP。一旦您在 AWS 中部署(使用 HTTPS),通信就变得“安全”了。并且由于没有证书,这次通信没有成功,因为没有握手。因此例外。
    猜你喜欢
    • 2023-03-28
    • 2015-05-25
    • 1970-01-01
    • 2013-08-22
    • 2016-06-15
    • 2013-03-13
    • 2018-06-30
    • 2018-02-10
    • 1970-01-01
    相关资源
    最近更新 更多