davydavek Posté(e) September 13, 2014 Signaler Share Posté(e) September 13, 2014 Hello, Comme vous devez surement le savoir, il n'y a pas d’implémentation du protocole POP (Post Office Protocol) dans le framework .NET. J'ai donc créer une librairie qui contient quasiment tout le protocole (sauf la commande APOP). La source est disponible sur GitHub (GPL v3): https://github.com/DavyWk/POP-Lib Téléchargement: http://davydavek.olympe.in/Projects/POPLib.dll Pour commencer a l'utiliser c'est très simple, using POP; [...] var client = new POP3Client("pop.gmail.com", 995, true); // Serveur POP de Gmail avec SSL Pour se connecter: client.Connect(); // initialise la connexion avec le serveur client.Login("[email protected]", "password"); Et a la fin, n'oubliez pas de disposer de l'objet : client.Dispose(); J'ai mis de la doc XML pour presque tout les fonctions publiques, mais si vous avez un problème/ une question, n’hésitez pas a demander. Davy 2 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Soulalex Posté(e) September 14, 2014 Signaler Share Posté(e) September 14, 2014 Beau travail Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mars073 Posté(e) September 14, 2014 Signaler Share Posté(e) September 14, 2014 Très utile, merci du partage.+1 Rep Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azad Posté(e) September 14, 2014 Signaler Share Posté(e) September 14, 2014 Extrêmement pratique ! J'étais justement en train dans le train tout à l'heure afin de savoir si une lib de ce genre existait pour un projet futur que j'ai en tête (mais pour moi c'est en C++ ou C, de manière tout aussi simplifiée). En tout cas bon boulot, ton client avance bien sinon ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
davydavek Posté(e) September 15, 2014 Auteur Signaler Share Posté(e) September 15, 2014 En fait je l'ai terminé il y a quelques jours, il faut juste que je prenne le temps d’écrire une présentation Pendant mes recherches j'ai vu une lib comme celle ci en C++, sur codeproject : http://www.codeproject.com/Articles/3458/A-POP-class-with-WIN-API-APOP-Command-support 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azad Posté(e) September 15, 2014 Signaler Share Posté(e) September 15, 2014 Im-pec-ca-ble ! Merci mon ami. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
AlexMog Posté(e) September 24, 2014 Signaler Share Posté(e) September 24, 2014 Sinon, Boost pour le C++, GG pour la lib Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
davydavek Posté(e) October 11, 2014 Auteur Signaler Share Posté(e) October 11, 2014 Je vient de trouver un bug: La propriété Connected de la classe POP3Client dépend de la propriété TcpClient.Socket.Connected, et je vient de découvrir que cette propriété est "true" si la dernière opération (read/write) c'est bien déroulée, peu importe si la connexion est ouverte ou fermée. Donc elle peut indiquer "true" même si la connexion a été coupée. Le problème c'est que je l'utilisais pour vérifier si le client était toujours connecté (certain serveurs vous déconnecte après une certaine période d’inactivité). J'ai lu que la seule façon de s'assurer que la connexion est toujours ouverte c'est d'essayer d'envoyer un message "test" (en l’occurrence "NOOP" pour POP3), mais ça pause des problèmes a cause du serveur qui envoie un message de bienvenue a la connexion. C'est assez rare que ça arrive, donc je vais le laisser pour l'instant, je vais publier mon client et puis si j'ai du temps a perdre j'essaierais de le régler. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azad Posté(e) October 12, 2014 Signaler Share Posté(e) October 12, 2014 Besoin d'aide pour résoudre ça ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
davydavek Posté(e) October 13, 2014 Auteur Signaler Share Posté(e) October 13, 2014 Si quelqu'un sait comment être sur que la connexion est toujours ouverte sans avoir a envoyer de données, je suis tout ouï. Sinon je devrais juste trouver une solution en changeant l'organisation des fonctions d'envoi. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
AlexMog Posté(e) October 13, 2014 Signaler Share Posté(e) October 13, 2014 Si quelqu'un sait comment être sur que la connexion est toujours ouverte sans avoir a envoyer de données, je suis tout ouï. Sinon je devrais juste trouver une solution en changeant l'organisation des fonctions d'envoi. en théorie, la plupart des RFC incluent un "ping". SInon, la plupart du temps, tant que la socket ne saute pas, c'est bon Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
davydavek Posté(e) October 14, 2014 Auteur Signaler Share Posté(e) October 14, 2014 Oui j'y ai penser au début, sauf que j'ai remarquer le ma fonction d'envoi check la connexion (en utilisant une méthode qui n'est pas fiable). Donc si j'essaie de check en envoyant un message ça me fait une boucle infinie qui se termine par une stackoverflow Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
AlexMog Posté(e) October 24, 2014 Signaler Share Posté(e) October 24, 2014 Oui j'y ai penser au début, sauf que j'ai remarquer le ma fonction d'envoi check la connexion (en utilisant une méthode qui n'est pas fiable). Donc si j'essaie de check en envoyant un message ça me fait une boucle infinie qui se termine par une stackoverflow Faut revoir ta conception! Y'a quelque chose qui vas pas! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
davydavek Posté(e) November 1, 2014 Auteur Signaler Share Posté(e) November 1, 2014 Après y avoir réfléchit pas mal de temps, je pense que je vais le laisser comme ça. Si jamais la connexion est coupée, l'utilisateur ne le remarqueras pas mais vu que la commande ne vas pas s’exécuter, il vas essayer de la relancer, et a ce moment, la propriété TcpClient.Client.Connected retournera false vu que la dernière opération ne s'est pas exécutée, ce qui fait que le programme affichera un message d’erreur (sans pour autant lancer une exception). Après il suffit juste de rétablir la connexion et de se reconnecter au serveur. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
davydavek Posté(e) November 29, 2014 Auteur Signaler Share Posté(e) November 29, 2014 (modifié) Update: Je me suis rendu compte que j'avais écrit un parseur MIME, fonctionnel mais pas complet; sans m'en rendre compte. Du coup j'ai rechercher un peu plus le format du protocole et j'ai réussit a le "compléter" (il ne manque plus que les attachements) , et a l’intégrer a la librairie. Ce qui fait qu'elle est bien plus stable maintenant. Commit git: https://github.com/DavyWk/POP-Lib/commit/21782a39945df2262347673d4768c61a9e68e844 edit: Fix d'un petit bug a cause de l'encodage en Base64. Modifié November 29, 2014 par davydavek Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
WelchCire Posté(e) January 2, 2015 Signaler Share Posté(e) January 2, 2015 I really enjoy the forum.Thanks Again. Fantastic. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
davydavek Posté(e) January 2, 2015 Auteur Signaler Share Posté(e) January 2, 2015 You're welcome Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.