Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Programmation
  3. Développement de logiciels
  4. C#
  5. POPLib

POPLib

Planifié Épinglé Verrouillé Déplacé C#
17 Messages 6 Publieurs 4.4k Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • D Hors-ligne
    D Hors-ligne
    davydavek
    a écrit sur dernière édition par
    #1

    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

    C# dev

    github.com/DavyWk

    1 réponse Dernière réponse
    2
    • SoulalexS Hors-ligne
      SoulalexS Hors-ligne
      Soulalex
      a écrit sur dernière édition par
      #2

      Beau travail 😉

      Soulalex, Administrateur de Melinyel
      + E-Mail : [[email protected]](mailto:[email protected] "Lien vers un courriel")
      + GitHub : [https://github.com/Soualex](https://github.com/Soualex "Lien externe")

      1 réponse Dernière réponse
      0
      • mars073M Hors-ligne
        mars073M Hors-ligne
        mars073
        a écrit sur dernière édition par
        #3

        Très utile, merci du partage.

        +1 Rep

        votes-45296e7.png

        Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.
        signature.png
        Signature aléatoire, proposez vous aussi une signature ici!

        1 réponse Dernière réponse
        0
        • AzadA Hors-ligne
          AzadA Hors-ligne
          Azad
          a écrit sur dernière édition par
          #4

          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 ?

          Administrateur du forum.

          Contactez-moi par message privé ou par mail.

          1 réponse Dernière réponse
          0
          • D Hors-ligne
            D Hors-ligne
            davydavek
            a écrit sur dernière édition par
            #5

            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

            C# dev

            github.com/DavyWk

            1 réponse Dernière réponse
            1
            • AzadA Hors-ligne
              AzadA Hors-ligne
              Azad
              a écrit sur dernière édition par
              #6

              Im-pec-ca-ble ! Merci mon ami.

              Administrateur du forum.

              Contactez-moi par message privé ou par mail.

              1 réponse Dernière réponse
              0
              • AlexMogA Hors-ligne
                AlexMogA Hors-ligne
                AlexMog
                Modérateur spécialisé
                a écrit sur dernière édition par
                #7

                Sinon, Boost  pour le C++, GG pour la lib 🙂

                Multiplayer GameDev @ Unexpected

                Mon CV

                1 réponse Dernière réponse
                0
                • D Hors-ligne
                  D Hors-ligne
                  davydavek
                  a écrit sur dernière édition par
                  #8

                  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.

                  C# dev

                  github.com/DavyWk

                  1 réponse Dernière réponse
                  0
                  • AzadA Hors-ligne
                    AzadA Hors-ligne
                    Azad
                    a écrit sur dernière édition par
                    #9

                    Besoin d'aide pour résoudre ça ?

                    Administrateur du forum.

                    Contactez-moi par message privé ou par mail.

                    1 réponse Dernière réponse
                    0
                    • D Hors-ligne
                      D Hors-ligne
                      davydavek
                      a écrit sur dernière édition par
                      #10

                      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.

                      C# dev

                      github.com/DavyWk

                      1 réponse Dernière réponse
                      0
                      • AlexMogA Hors-ligne
                        AlexMogA Hors-ligne
                        AlexMog
                        Modérateur spécialisé
                        a écrit sur dernière édition par
                        #11

                        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

                        Multiplayer GameDev @ Unexpected

                        Mon CV

                        1 réponse Dernière réponse
                        0
                        • D Hors-ligne
                          D Hors-ligne
                          davydavek
                          a écrit sur dernière édition par
                          #12

                          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 😞

                          C# dev

                          github.com/DavyWk

                          1 réponse Dernière réponse
                          0
                          • AlexMogA Hors-ligne
                            AlexMogA Hors-ligne
                            AlexMog
                            Modérateur spécialisé
                            a écrit sur dernière édition par
                            #13

                            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!

                            Multiplayer GameDev @ Unexpected

                            Mon CV

                            1 réponse Dernière réponse
                            0
                            • D Hors-ligne
                              D Hors-ligne
                              davydavek
                              a écrit sur dernière édition par
                              #14

                              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.

                              C# dev

                              github.com/DavyWk

                              1 réponse Dernière réponse
                              0
                              • D Hors-ligne
                                D Hors-ligne
                                davydavek
                                a écrit sur dernière édition par
                                #15

                                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.

                                C# dev

                                github.com/DavyWk

                                1 réponse Dernière réponse
                                0
                                • W Hors-ligne
                                  W Hors-ligne
                                  WelchCire
                                  Banni
                                  a écrit sur dernière édition par
                                  #16

                                  I really enjoy the forum.Thanks Again. Fantastic.

                                  1 réponse Dernière réponse
                                  0
                                  • D Hors-ligne
                                    D Hors-ligne
                                    davydavek
                                    a écrit sur dernière édition par
                                    #17

                                    You're welcome 😉

                                    C# dev

                                    github.com/DavyWk

                                    1 réponse Dernière réponse
                                    0

                                    Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

                                    Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

                                    Grâce à votre participation, ce message peut devenir encore meilleur 💗

                                    S'inscrire Se connecter
                                    Répondre
                                    • Répondre à l'aide d'un nouveau sujet
                                    Se connecter pour répondre
                                    • Du plus ancien au plus récent
                                    • Du plus récent au plus ancien
                                    • Les plus votés


                                    • Se connecter

                                    • Connectez-vous ou inscrivez-vous pour faire une recherche.
                                    Powered by NodeBB Contributors
                                    • Premier message
                                      Dernier message
                                    0
                                    • Catégories
                                    • Récent
                                    • Mots-clés
                                    • Populaire
                                    • Web
                                    • Utilisateurs
                                    • Groupes