javamail如何通过代理服务器(http或socks)接收POP3邮件?

niko7 2006-12-15 11:06:43
用JavaMail做了个接收邮件的类,可以成功接收pop3邮件,但是在单位的时候需要通过代理服务器才能上网,这样就收不到了。
请大虾不吝赐教。
HTTP代理或者SOCKS代理都可以,只要能让我在内网收到互联网上的邮件即可。
我用java1.4,如果java5可以解决也好。
...全文
1606 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
niko7 2007-01-23
  • 打赏
  • 举报
回复
自己顶
For_suzhen 2007-01-14
  • 打赏
  • 举报
回复
代理的,不知道,顶起来,看答案
niko7 2007-01-11
  • 打赏
  • 举报
回复
非常感谢cuij7718的答复,但是我试来试去还是没有成功。
当用 xxx@sina.com.cn#192.168.0.1 这种格式的时候,服务器直接告诉我验证错误。
niko7 2006-12-21
  • 打赏
  • 举报
回复
自己顶~~~
cuij7718 2006-12-21
  • 打赏
  • 举报
回复
我记得使用代理发送邮件,javamail本身不需要做设置,而是在设置邮箱帐号时候和普通的不一样,帐号xxx@sina.com.cn 代理是192.168.0.1 那么发送的smtp地址是192.168.0.1 而账号是xxx@sina.com.cn#192.168.0.1 还是别的什么记不清了,不过如果不用代理发送可以的话,那么修改为使用代理发送主程序不需要做任何改动的
yzqdhr 2006-12-20
  • 打赏
  • 举报
回复
帮顶~~ 关注中~!~
niko7 2006-12-18
  • 打赏
  • 举报
回复
jdk 1.5
作了测试,并没有成功。
lovelong1981 2006-12-15
  • 打赏
  • 举报
回复
jdk1.5
System.getProperties().put("proxySet","true");
System.getProperties().setProperty( "http.proxyHost","代理地址");
System.getProperties().setProperty( "http.proxyPort","代理端口");
网上参考:
大多数代理服务器只支持 HTTP 协议。JavaMail 没有使用 HTTP 协议来阅读或发送邮件。使用代理服务器的一个主要原因是为了允许企业网络中的 HTTP 请求通过企业防火墙。防火墙通常会阻止对 Internet 的大多数访问,但允许来自代理服务器的请求通过。此外,企业网络内部的邮件服务器将为邮件执行类似的功能,通过 SMTP 接收消息,然后将它们转发到 Internet 上的最终目的地,以及接收传入的消息,然后将它们发送到合适的内部邮件服务器。
  如果你的代理服务器支持 SOCKS V4 或 V5 协议 (http://www.socks.nec.com/aboutsocks.html, RFC1928),并允许匿名连接,可以告诉 Java 运行时把所有的 TCP socket 直接连接到 SOCKS 服务器。参阅 http://java.sun.com/j2se/1.4/docs/guide/net/properties.html,获取 socksProxyHost 和 socksProxyPort 属性的最新文档。这些是系统级属性,而不是 JavaMail 会话属性。当调用应用程序时,它们可以从命令行中设置,例如:java -DsocksProxyHost=myproxy ...。这个工具可用于指出从 JavaMail 到 SOCKS 代理服务器进行 SMTP、IMAP 和 POP3 通信。注意,设置这些属性将告诉 所有 TCP socket 连接到 SOCKS 代理,在应用程序的其他方面上,这可能会带来负面影响。
  假如没有这样的 SOCKS 服务器,如果想使用 JavaMail 来直接访问防火墙外部的邮件服务器,那将需要配置防火墙来允许这一访问。一个简单的 HTTP 代理 Web 服务器是足够的。

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧