4

我在 Tomcat 容器中的 RHEL6 上运行 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)

有什么问题?

4

2 回答 2

2

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 或较新的版本,您可以按照 com.sun.mail.smtp 包的 javadocs 中的描述设置“mail.smtp.socks.host”属性,在每个会话、每个协议的基础上配置 SOCKS 代理。“imap”和“pop3”协议存在类似的属性。

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

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

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

ssh -D 9090 <remoteserver>

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

于 2012-10-10T17:40:56.897 回答
1

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

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

于 2015-02-11T16:30:57.140 回答