使用OpenPOP .net客户端从Gmail获取邮件。
我想知道如何才能获得新消息?
目前,我获取原子Feed,然后获取与Feed一起使用OpenPOP客户端的电子邮件(从第一个开始)。
GmailAtomFeed feed = new GmailAtomFeed("user", "pass");
feed.GetFeed();
int unread = feed.FeedEntries.Count;
POPClient client = new POPClient("pop.gmail.com", 995, "user", "pass", AuthenticationMethod.USERPASS, true);
for (int i = 0; i < unread; i++)
{
Message m = client.GetMessage(i, false);
// ...
}
有更好的方法吗?
如何设置要读取的未读消息?
答案 0 :(得分:5)
我怀疑你能用pop3做到这一点。根据我的理解,POP3不支持未读/看不见的电子邮件的概念。应该由客户端跟踪已经向用户显示的消息以及未显示的消息。
您可以切换到使用IMAP协议访问gmail。请查看此链接,了解如何为您的Gmail帐户Getting started with IMAP for Gmail启用该帐户。
现在,如果您正在使用c#,那么IMAP有一些商业库,并且有免费的\ opensource:像codeproject上的这个:IMAP Client library using C#。要获取看不见的消息,您需要做的是为select命令指定“unseen”标志。这是一个example
答案 1 :(得分:1)
您必须将每封电子邮件的UIDL
存储在本地数据库中。当您要检查新邮件时,检索服务器上的UIDL
,看看您是否已经在本地数据库中;如果没有,这是一封新邮件。
Outlook使用相同的策略。