当我连接到pop3.live.com时,连接正常,它还显示了我拥有的消息量和文件大小,但是当我尝试使用“RETR”获取消息并显示它们时控制台应用程序没有任何显示。
这是我到目前为止所拥有的
string str = string.Empty;
string strTemp = string.Empty;
using (TcpClient tc = new TcpClient())
{
tc.Connect("pop3.live.com", 995);
using (SslStream sl = new SslStream(tc.GetStream()))
{
sl.AuthenticateAsClient("pop3.live.com");
using (StreamReader sr = new StreamReader(sl))
{
using (StreamWriter sw = new StreamWriter(sl))
{
sw.WriteLine("USER " + _username);
sw.Flush();
sw.WriteLine("PASS "+ _password);
sw.Flush();
sw.WriteLine("LIST");
sw.Flush();
sw.WriteLine("RETR");
sw.Flush();
sw.WriteLine("QUIT ");
sw.Flush();
while ((strTemp = sr.ReadLine()) != null)
{
if (strTemp == "." || strTemp.IndexOf("-ERR") != -1)
{
break;
}
str += strTemp;
}
}
}
}
}
Console.WriteLine(str);
Console.ReadLine();
答案 0 :(得分:1)
使用RETR
,您需要指定要检索的邮件。 POP3 specification不支持RETR
没有数字的{{1}}。
答案 1 :(得分:1)
首先,您必须使用LIST命令,该命令列出了消息编号。然后使用上一个列表中的单个消息号发出一个或多个RETR命令。消息号不一定从1开始!另请参阅我对您调试此问题的问题的评论。
例如:
LIST
+OK 2 messages (4095)
1 710
2 3385
.
RETR 1
+OK 710 octets
Return-Path: <john@example.com>
...