2011-11-30 3 views
0

Travail sur C#. Dans mon application de bureau, avec succès, je peux utiliser le IMAP4 pour recevoir des mails de la boîte de réception. Mais échouer à recevoir des mails avec la plage de dates. supposons voulez obtenir des mails avec dans la gamme 27-Nov-2011 à 28-Nov-2011. J'écris syntaxe ci-dessous, mais ne fonctionne pas.Comment obtenir des mails Dans la plage de dates?

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

Besoin d'aide pour obtenir des messages dans la période.

Si vous avez une requête plz demander.Merci à l'avance.

+2

Quelle bibliothèque utilisez-vous? Je vais faire une conjecture sauvage que vous utilisez MailSystem.NET? Si vous pouvez vouloir mentionner cela dans la question. – MatthewMartin

+0

i Utiliser Imap4Client – shamim

+0

Cela semble être un nom de classe, pas le nom de la bibliothèque. Je suis toujours sûr que vous utilisez MailSystem.NET. La classe en question est http://mailsystem.codeplex.com/SourceControl/changeset/view/63853#541880 alors peut-être que vous voudrez peut-être ajouter la source à votre solution, puis parcourir le .SearchParse() – MatthewMartin

Répondre

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

signifie les mails depuis aujourd'hui. mais vous les voulez depuis un autre temps

var since = new DateTime (2011, 11, 27); var messages = inbox.SearchParse ("SINCE" + depuis.ToString ("jj-MMM-aaaa"));

EDIT

regardé dans le Mailbox.cs, la syntaxe est différente

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

esskar merci pour la réponse.Merci pour votre syntaxe ci-dessus.Mon ami Je sais à ce sujet, mais le problème est si je veux recevoir du courrier entre 27-Nov-2011 à 28-Nov-2011, puis j'échoue. pour écrire une requête à cet effet. Merci encore – shamim

+1

qu'est-ce que «échouer» signifie? avez-vous une exception? ça ne retourne rien? s'il vous plaît soyez plus détaillé! – esskar

+0

J'utiliserais la suggestion d'esskar et ferais ensuite une boucle foreach à travers les résultats pour expulser tout ce qui dépasse la plage de dates désirée. – MatthewMartin

Questions connexes