通过代理发送来自java的电子邮件

时间:2011-02-27 02:01:26

标签: java proxy javamail

我使用Java Mail API发送电子邮件并接收它们。 现在我正在做这个项目的地方有一个代理服务器。

我可以知道如何通过代理服务器从java发送电子邮件吗?

1 个答案:

答案 0 :(得分:1)

See the FAQ Here.

  

JavaMail目前不支持通过Web代理服务器访问邮件服务器。使用代理服务器的一个主要原因是允许来自公司网络内的HTTP请求通过公司防火墙。防火墙通常会阻止对Internet的大多数访问,但允许来自代理服务器的请求通过。此外,企业网络内的邮件服务器将执行类似的电子邮件功能,通过SMTP接收邮件并将其转发到Internet上的最终目的地,并接受传入邮件并将其发送到相应的内部邮件服务器。

     

如果您的代理服务器支持SOCKS V4或V5协议(http://www.socks.nec.com/aboutsocks.htmlRFC1928)并允许匿名连接,您可以告诉Java运行时将所有TCP套接字连接定向到SOCKS服务器。有关socksProxyHost和socksProxyPort属性的最新文档,请参阅网络属性指南。这些是系统级属性,而不是JavaMail会话属性。可以在调用应用程序时从命令行设置它们,例如:java -DsocksProxyHost=myproxy ...。此工具可用于将SMTP,IMAP和POP3通信从JavaMail定向到SOCKS代理服务器。请注意,设置这些属性会将所有TCP套接字定向到SOCKS代理,这可能会对应用程序的其他方面产生负面影响。

     

如果没有这样的SOCKS服务器,如果要使用JavaMail直接访问防火墙外的邮件服务器,则需要配置防火墙以允许此类访问。 JavaMail不支持通过HTTP代理Web服务器进行访问。