HY,
我正在使用此库http://mailsystem.codeplex.com/从gmail帐户programaticaly检索邮件。
在设置的“转发和POP / IMAP”标签中将“为所有邮件启用POP”设置为“确定”后,第一次运行应用程序时,一切正常(我得到了邮件计数和所有邮件的列表)菜单。但是当我再次运行它时,没有消息被检索。而且,如果我再次设置所有邮件的启用POP,该应用程序将再次运行。
我认为我必须在运行检索消息代码之前设置“为所有邮件启用POP”。
有谁知道如何在C#和asp.net中进行此编程?
我正在使用的代码:
Pop3Client pop = new Pop3Client();
try
{
Label7.Text = string.Format("Connection to the pop 3 server : {0}", "pop.gmail.com ");
pop.ConnectSsl("pop.gmail.com", 995, TextBox4.Text, TextBox5.Text);
Label7.Text += string.Format("Message Count: {0}", pop.MessageCount.ToString());
MessageCollection mc = new MessageCollection();
for (int n = 1; n < pop.MessageCount + 1; n++)
{
Message newMessage = pop.RetrieveMessageObject(n);
mc.Add(newMessage);
Label7.Text += string.Format("Message ({0}) : {1} ", n.ToString(), newMessage.Subject);
}
}
catch (Pop3Exception pexp)
{
Label7.Text = string.Format("Pop3 Error: {0} ", pexp.Message);
}
catch (Exception ex)
{
Label7.Text = string.Format("Failed: {0} ", ex.Message);
}
finally
{
if (pop.IsConnected)
{
pop.Disconnect();
}
}
我正在使用前面提到的源代码中的ActiveUp.Net.Mail库。
最佳答案
您是否正在尝试通过IMAP4获得POP3行为?
使用POP3,通常会在检索到电子邮件后从服务器删除该电子邮件。然后,下次您进行下一步连接时,只有新消息将在您的应用程序中可用。等等。
使用IMAP4,消息将保留在服务器上。这是一种不同的方法。您必须在本地维护一个与IMAP4服务器同步的状态。