我创建了一个Windows测试应用程序,我在其中连接到我的hotmail帐户并检查那里的未读邮件。目前通过我的应用程序,我从我的hotmail帐户收到了最后一封邮件。
如何获取最新邮件以及是否可以使用SSLStream对象获取最新邮件的主题和正文。
我在这里发布我的代码。请帮助我这个。任何适当的帮助将不胜感激。它写的地方"得到第一封邮件",我只得到总数第一封邮件的字节。请帮助我获取第一个电子邮件主题和正文。
TcpClient mail = new TcpClient();
SslStream sslStream;
int bytes = -1;
mail.Connect("pop3.live.com", 995);
sslStream = new SslStream(mail.GetStream());
sslStream.AuthenticateAsClient("pop3.live.com");
byte[] buffer = new byte[2048];
// Read the stream to make sure we are connected
bytes = sslStream.Read(buffer, 0, buffer.Length);
string message = Encoding.ASCII.GetString(buffer, 0, bytes);
MessageBox.Show(message);
//Send the users login details
sslStream.Write(Encoding.ASCII.GetBytes("USER user_name\r\n"));
bytes = sslStream.Read(buffer, 0, buffer.Length);
string message1 = Encoding.ASCII.GetString(buffer, 0, bytes);
MessageBox.Show(message1);
//Send the password
sslStream.Write(Encoding.ASCII.GetBytes("PASS password\r\n"));
bytes = sslStream.Read(buffer, 0, buffer.Length);
string message2 = Encoding.ASCII.GetString(buffer, 0, bytes);
MessageBox.Show(message2);
// Get the first email
sslStream.Write(Encoding.ASCII.GetBytes("RETR 1\r\n"));
bytes = sslStream.Read(buffer, 0, buffer.Length);
string message4 = Encoding.ASCII.GetString(buffer, 0, bytes);
MessageBox.Show(message4);
string str = string.Empty;
string strTemp = string.Empty;
StreamReader reader = new StreamReader(sslStream);
while ((strTemp = reader.ReadLine()) != null)
{
// find the . character in line
if (strTemp == ".")
{
break;
}
if (strTemp.IndexOf("-ERR") != -1)
{
break;
}
str += strTemp;
}
MessageBox.Show(str);
}
通过对代码的一些修改,我可以访问hotmail帐户。但是当我尝试访问AOl帐户时,使用相同的代码。我正在获得IO异常。任何人都可以帮助我如何连接到AOL邮件系统使用此代码。感谢任何帮助。
答案 0 :(得分:0)
我认为你必须实现pop协议来获取pop服务器的电子邮件;在你的情况下hotmail。你会找到关于从{3}}
上的hotmail / gmail等pop3服务器打开邮件的好文章