【问题标题】:Jenkins cannot find smtp.gmail.com詹金斯找不到 smtp.gmail.com
【发布时间】:2012-09-30 17:14:39
【问题描述】:

我在 RHEL6 上的 tomcat 容器中运行 Jenkins。我的计算机在我的公司代理后面,我在插件配置选项卡中定义了它。我可以下载插件以便工作(至少对于端口 8080)。

我现在正在尝试配置 SMTP 服务器。我正在尝试使用我的 localhost SMTP 服务器,但无法使其正常工作,因此我决定首先使用应该可以工作的东西(gmail)进行调试。我已将 SMTP 服务器设置为“smtp.gmail.com”和端口“465”。我也尝试过使用端口 25、587。我得到回应:

javax.mail.MessagingException: Unknown SMTP host: smtp.gmail.com;
  nested exception is:
java.net.UnknownHostException: smtp.gmail.com
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1932)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)

可能出了什么问题?

【问题讨论】:

    标签: email gmail jenkins


    【解决方案1】:

    Java Mail 不支持使用 HTTP 代理; http://www.oracle.com/technetwork/java/faq-135477.html#proxy

    但是;

    如果您的代理服务器支持 SOCKS V4 或 V5 协议 (http://www.socks.nec.com/aboutsocks.html, RFC1928) 并允许 匿名连接,并且您使用的是 JDK 1.5 或更新版本以及 JavaMail 1.4.5 或更高版本,您可以通过将“mail.smtp.socks.host”属性设置为按会话、按协议配置 SOCKS 代理 在 com.sun.mail.smtp 包的 javadocs 中进行了描述。相似的 “imap”和“pop3”协议存在属性。

    作为替代方案,您可以在本地机器上设置一个 MTA,例如 postfix 或 sendmail,它们将接受 localhost 上的连接,并且可能比 Java 更易于配置以穿透代理配置。

    注意:如果您的公司阻止了非 http 端口上的连接(例如,除 80、8080、443 之外的任何端口),那么您可能需要寻找其他解决方案,或许可以从本地系统管理员那里获得一些支持。

    还有;如果你想聪明一点,你可以通过以下命令使用 ssh 设置一个(临时)socks 代理;

    ssh -D 9090 <remoteserver>
    

    这假设远程服务器具有不受限制的访问权限,您可以将可以处理 SOCKS 的连接客户端指向 localhost:9090。

    【讨论】:

      【解决方案2】:

      发生这种情况是因为 Gmail 安全性... 只需允许通过应用程序访问您的 gmail 帐户,请转到您的帐户下: https://www.google.com/settings/security/lesssecureapps 它会工作.. smtp.gmail.com 是正确的。无需更改它。

      也不要忘记检查互联网连接。

      【讨论】:

        猜你喜欢
        • 2014-07-24
        • 2018-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-24
        相关资源
        最近更新 更多