sspizer
Messages postés38Date d'inscriptionmercredi 4 juillet 2007StatutMembreDernière intervention23 février 2009
-
4 juil. 2007 à 16:19
sspizer
Messages postés38Date d'inscriptionmercredi 4 juillet 2007StatutMembreDernière intervention23 février 2009
-
6 juil. 2007 à 14:45
Bonjour à tous.
Je suis en train de développer une application qui lit mes mails sur un server.
Le probleme c'est que lorsqu'il y a une pièce jointe dans un de mes
mails tout de suite le contenu du mail passe de 2000 lignes à très
facilement 20 000 lignes.
Et dans ce cas mon application met presque 5 minutes a lire l'intégralité du mail via un le net.
Mes attentes sont:
1) Récupérer l'intégralité du mail, sans que ça mette trop de temps à lire. (comme outlook par exemple)
Voici en gros le code que j'utilise:
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
//ON SE CONNECTE
//Create server POP3 with port 110
TcpClient tcpClient = new TcpClient();
tcpClient.Connect(server, port);
//Create a network stream to retrieve data from the TCP client
NetworkStream netStream = tcpClient.GetStream();
//We need a stream reader to be able to read the network stream
StreamReader strReader = new StreamReader(netStream);
if(tcpClient.Connected)
{
//ON DONNE LE LOGIN
log += strReader.ReadLine();
log += "
";
//Buffer to which we're going to write the commands
byte[] writeBuffer = newbyte[1024];
//We'll be passing ASCII characters
ASCIIEncoding enc = new System.Text.ASCIIEncoding();
//Pass the username to the server
writeBuffer = enc.GetBytes("USER " + login + "\r\n");
netStream.Write(writeBuffer, 0, writeBuffer.Length);
//ON DONNE LE PASS
//Give the password to the server
writeBuffer = enc.GetBytes("PASS " + pass + "\r\n");
netStream.Write(writeBuffer, 0, writeBuffer.Length);
//ON DEMANDE DE LIRE LE PREMIER MAIL
writeBuffer = enc.GetBytes("RETR 1 \r\n");
netStream.Write(writeBuffer, 0, writeBuffer.Length);
//ON LIT LE MAIL
while(true)
{
string line = strReader.ReadLine();
if(line == ".")break;/*les mails se finissent tous par "."*/
elsecontinue;
}
Rien que faire ça sur un mail qui contient 3 pieces jointes et dont la
totalité du mail fait 2 mo ça prend bien 4 vrais minutes et je sais que
c'est faisable de le lire en 1 secondes max puisque outlook le fait
bien.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 4 juil. 2007 à 17:19
Salut,
Dans Outllook, la pièce jointe n'est pas téléchargée de suite. Il affiche d'abord le message, puis la pièce jointe est téléchargée lors de son ouverture. Ce serait d'ailleurs plutot dangereux qu'Outlook télécharge de lui-même les pièces jointes sans l'avis de l'utilisateur à la simple lecture du message.
Trouve donc un moyen de séparer le corps du message des pièces jointes, et si l'envoyeur est une personne de confiance, à la limite télécharge la pièce jointe en background, sinon télécharge sur la demande.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 6 juil. 2007 à 13:45
J'ai vu que tu avas posé une autre question dans laquelle tu parlais de la pièce jointe, tu as donc trouvé un moyen de l'identifier... il ne te reste plus qu'à la voir arriver pour ne pas la télécharger c'est tout...
sspizer
Messages postés38Date d'inscriptionmercredi 4 juillet 2007StatutMembreDernière intervention23 février 2009 6 juil. 2007 à 14:45
oué mais j'ai déjà testé de la récupéré à part ça prend beaucoup trop de temps pour le peu de taille que fait la photo.
A mon avis la lenteur viens soit de la facons que je récupére mon mail soit il manque quelque chose.