Kleidp
Messages postés124Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention10 février 2008
-
19 sept. 2006 à 12:09
Kleidp
Messages postés124Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention10 février 2008
-
21 sept. 2006 à 13:11
Bonjour,
je crée une application chargée de rapatrier certain mails.
Pour pouvoir récupérer les messages su serveur, j'ai un streamReader sur le flux du serveur:
pop3Read = new StreamReader(pop3Flux);
Bon aucun problème et rien d'original pour le moment.
Je commence donc à lister tous mes mails pour récupérer le sujet (Subject : ) ainsi:
Commande("RETR "+numMail); // Inscrit un mail dans le flux
while ( txt != ".")
{ if (txt.IndexOf("subject:", StringComparison.OrdinalIgnoreCase) !-1) txtSujet txt.ToString(); //Récupère le sujet
txt = pop3Read.ReadLine();
}
Cette méthode est complètement inefficace puisqu'il faut lister tout le mail alors que le sujet se trouve au début (Bien que sur tout les exemples que j'ai parcourut font ainsi !). De plus elle provoque un bug lorsqu'il y a une pièce jointe de plus de 2Mo (devient horriblement long) d'ailleurs sur tout les exemples du site aucun ne passe :(
J'aimerais donc faire:
while ( txt.IndexOf("subject:", StringComparison.OrdinalIgnoreCase) == -1)
{
txt = pop3Read.ReadLine();
}
txtSujet = xt.ToString();
// Essayer d'atteindre la fin du streamReader pop3read
C'est donc ici que se trouve mon problème, il faut que j'atteigne la fin du streamReader(sans le parcourir) puis le charger avec le mail suivant sinon je continu a lister la fin du mail précédent, mais je n'y arrive pas ! (je ne sais pas si c'est très clair comme explication:)
J'ai essayé par exemple avec pop3Read.ReadtoEnd() mais rien n'y fait.