2010-01-16 99 views
3

使用OpenPOP .net客戶端從Gmail獲取郵件。如何使用POP3從Gmail獲取未讀/新郵件?

我想知道如何才能得到新消息?

目前,我得到原子數據源,然後通過OpenPOP客戶端(從第一個開始)獲取與Feed相同數量的電子郵件。

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); 

     // ... 
    } 

有沒有更好的方法來做到這一點?

我該如何設置未讀郵件被讀取?

回答

5

我懷疑你可以用pop3來做。根據我的理解,POP3不支持未讀\不可見電子郵件的概念。應該由客戶來跟蹤已經向用戶顯示的消息,而哪些不是。

你可以做的是切換到使用IMAP協議訪問Gmail。請查看此鏈接,瞭解如何爲您的gmail帳戶Getting started with IMAP for Gmail開啓它。

現在,如果您使用的是c#,有一些用於IMAP的商業庫,並且有免費的\ opensource庫:像這樣的代碼項目:IMAP Client library using C#。要獲取看不見的消息你需要做的是爲select命令指定「unseen」標誌。這裏是一個example

1

你必須將每個電子郵件的UIDL存儲在本地數據庫。當你想檢查新的郵件時,你可以檢索服務器上的UIDL,看看你是否已經在你的本地數據庫中;如果沒有,這是一個新的郵件。

Outlook使用相同的策略。

相同Q How to retrieve only new emails using POP3 protocol

相關問題