所以,我从codeplex(http://mailsystem.codeplex.com/)获得了mailsystem.net,以编写pop3客户端。 问题是,我想使用http代理。 发现了一些提示:
How to open socket thru proxy server in .Net C#?
这是 我的代码:
Pop3Client pop = new Pop3Client();
Socket sock = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
sock.Connect("79.172.35.74", 82); // here is proxy
sock.Send(Encoding.UTF8.GetBytes("CONNECT pop.yandex.ru:110 HTTP/1.1<CR><LF>")); // here pop3 server
sock.Send(Encoding.UTF8.GetBytes("<CR><LF>"));
byte[] buffer = new byte[25];
sock.Receive(buffer);
pop.Client = sock;
pop.Connect(config.pop3.host, config.pop3.username, config.pop3.password);
所以,它在最后一行失败,出现套接字异常。我能做什么?或任何具有代理支持的免费pop3client库?
答案 0 :(得分:1)
从您链接到的帖子引用:
- 连接到代理。
- 问题
CONNECT Host:Port HTTP/1.1<CR><LF>
- 问题
<CR><LF>
- 等待回复。如果它包含
HTTP/1.X 200
,则连接成功。- 阅读更多回复,直到收到空行。
- 现在,您通过代理连接到外部世界。做你想要的任何数据交换。
醇>
你做枪弹的地方在哪里? 5?在收到空行之前,你在哪里阅读所有行?
除此之外,我不知道问题可能是什么。您可以选择使用Starksoft Proxy library来帮助您。
答案 1 :(得分:1)
这一行:
pop.Connect(config.pop3.host, config.pop3.username, config.pop3.password);
不需要,您的套接字已经连接。你应该只登录。
您可以尝试Mail.dll POP3 component。请注意,这是我创建的商业(非免费)产品。
它支持HTTP和SOCKS代理:
http://www.lesnikowski.com/blog/index.php/imap-pop3-smtp-via-http-socks-proxy/