2011-11-30 75 views
0

在C#上工作。在我的桌面應用程序中,我可以成功使用 IMAP4從收件箱中獲取郵件。但未能在日期範圍內收到郵件。 假設想要收到範圍在2011年11月27日至2011年11月28日的郵件。我寫波紋管的語法,但不是工作。如何獲得郵件在日期範圍內?

Imap4Client imap = new Imap4Client(); 
imap.ConnectSsl(sImapHost, nImapPort); 
imap.Login(sImapUser, sImapPassword); 

inbox = imap.SelectMailbox(@"[Gmail]/Sent Mail"); 


MessageCollection messages = inbox.SearchParse("SINCE " + DateTime.Now.ToString("dd-MMM-yyyy")); 

需要幫助才能在日期範圍內收到郵件。

如有任何查詢請詢問。預先感謝。

+2

什麼庫您使用的是不同的?我要大肆猜測你使用的是MailSystem.NET嗎?如果你可能想在問題中提到這一點。 – MatthewMartin

+0

我使用Imap4Client – shamim

+0

這似乎是一個類名稱,而不是庫名稱。我仍然確定你使用的是MailSystem.NET。有問題的類是http://mailsystem.codeplex.com/SourceControl/changeset/view/63853#541880因此,也許你可能想要將源代碼添加到解決方案中,然後單步執行.SearchParse() – MatthewMartin

回答

3
MessageCollection messages = inbox.SearchParse("SINCE " + DateTime.Now.ToString("dd-MMM-yyyy")); 

表示從今天開始的郵件。 但你想要他們自從另一次

var since = new DateTime(2011,11,27); (「dd-MMM-yyyy」));}};}};

編輯

進去看了Mailbox.cs,語法

var messages = inbox.SearchParse("SEARCH SINCE 27-Nov-2011 NOT BEFORE 28-NOV-2011"); 
+0

esskar thanks for reply.Thanks for your above syntax.My friend我知道這件事,但問題是如果我想在2011年11月27日至2011年11月28日之間收到郵件,那麼我將失敗。請告訴我如何爲此編寫查詢。再次感謝 – shamim

+1

「失敗」是什麼意思?你有例外嗎?它不會返回任何東西嗎?請更詳細! – esskar

+0

我會使用esskar的建議,然後通過結果做一個foreach循環來排除超出所需日期範圍的任何東西。 – MatthewMartin

相關問題