2011-11-17 18 views
3

我正在使用開源IMAP C#庫IMapX(http://hellowebapps.com/products/imapx/)。 當我試圖從INBOX收到電子郵件時,它花費了很多時間。有沒有辦法根據收到的日期過濾收件箱?需要IMAP INBOX上的幫助根據收到的日期搜索

下面的代碼是一個示例。該搜索基於UNSEEN。我想根據收到的日期過濾大於給定的日期。

ImapX.ImapClient client = new ImapX.ImapClient("imap.gmail.com", 993, true); 
    bool result = false; 

    result = client.Connection(); 
    if (result) 
     MessageBox.Show("Connection Established"); 

    result = client.LogIn(textBox1.Text, textBox2.Text); 
    if (result) 
    { 
     MessageBox.Show("Logged in"); 
     ImapX.FolderCollection folders = client.Folders; 
     ImapX.MessageCollection messages = client.Folders["INBOX"].Search("UNSEEN", true); //true - means all message parts will be received from server 

     int unread = messages.Count; 
     string unseen = unread.ToString(); 
     button1.Text = unseen; 
    } 

回答

8

您可以使用IMAP搜索數據項目SINCE。例如:「SINCE 18-Nov-2011」。 或者如果你也對UNSEEN感興趣,那麼:「SINCE 18-Nov-2011 UNSEEN」

+0

如果我想在日期範圍內收到郵件,假設如:想要在2011年11月29日至11月30日之間收到郵件-2011比做什麼?如何編寫搜索查詢。 – shamim

+2

這是我通過這個答案得到的工作代碼:'imap_search($ this-> mbox,SINCE「Wed,2010年2月3日0:00:00」BEFORE「星期六,2010年2月13日0:00:00」)'php's' strtotime()'和'date('D,j MYG:i:s')'非常有用。僅供參考上述搜索Gmail郵箱和郵件檢索大約需要20秒。 –