Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

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

POPLib

Scheduled Pinned Locked Moved C#
17 Posts 6 Posters 4.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D
    D
    davydavek
    wrote on last edited by
    #1

    <p>Hello,</p>
    <p> </p>
    <p>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).</p>
    <p> </p>
    <p>La source est disponible sur GitHub (GPL v3): <a href="https://github.com/DavyWk/POP-Lib" rel="external nofollow">https://github.com/DavyWk/POP-Lib</a></p>
    <p>Téléchargement: <a href="http://davydavek.olympe.in/Projects/POPLib.dll" rel="external nofollow">http://davydavek.olympe.in/Projects/POPLib.dll</a></p>
    <p> </p>
    <p>Pour commencer a l'utiliser c'est très simple,</p>
    <pre class="ipsCode prettyprint">
    using POP;

    var client = new POP3Client("pop.gmail.com", 995, true); // Serveur POP de Gmail avec SSL
    </pre>
    <p>Pour se connecter:</p>
    <pre class="ipsCode prettyprint">
    client.Connect(); // initialise la connexion avec le serveur
    client.Login("[email protected]", "password");
    </pre>
    <p>Et a la fin, n'oubliez pas de disposer de l'objet :</p>
    <pre class="ipsCode prettyprint">
    client.Dispose();
    </pre>
    <p>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.</p>
    <p> </p>
    <p>Davy</p>

    C# dev
    github.com/DavyWk

    1 Reply Last reply
    2
    • SoulalexS
      SoulalexS
      Soulalex
      wrote on last edited by
      #2

      <p>Beau travail 😉 </p>

      Soulalex, Administrateur de Melinyel+ E-Mail : [email protected]+ GitHub : https://github.com/Soualex

      1 Reply Last reply
      0
      • mars073M
        mars073M
        mars073
        wrote on last edited by
        #3

        <p>Très utile, merci du partage.</p><p>+1 Rep</p>

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

        1 Reply Last reply
        0
        • AzadA
          AzadA
          Azad
          wrote on last edited by
          #4

          <p>Extrêmement pratique !<br/>
          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). 🙂 </p>
          <p>
          En tout cas bon boulot, ton client avance bien sinon ?</p>

          Administrateur du forum.
          Contactez-moi par message privé ou par mail.

          1 Reply Last reply
          0
          • D
            D
            davydavek
            wrote on last edited by
            #5

            <p>En fait je l'ai terminé il y a quelques jours, il faut juste que je prenne le temps d’écrire une présentation 🙂 </p>
            <p> </p>
            <p>Pendant mes recherches j'ai vu une lib comme celle ci en C++, sur codeproject : <a href="http://www.codeproject.com/Articles/3458/A-POP-class-with-WIN-API-APOP-Command-support" rel="external nofollow">http://www.codeproject.com/Articles/3458/A-POP-class-with-WIN-API-APOP-Command-support</a></p>

            C# dev
            github.com/DavyWk

            1 Reply Last reply
            1
            • AzadA
              AzadA
              Azad
              wrote on last edited by
              #6

              <p>Im-pec-ca-ble ! Merci mon ami.</p>

              Administrateur du forum.
              Contactez-moi par message privé ou par mail.

              1 Reply Last reply
              0
              • AlexMogA
                AlexMogA
                AlexMog
                Modérateur spécialisé
                wrote on last edited by
                #7

                <p>Sinon, Boost  pour le C++, GG pour la lib 🙂 </p>

                Multiplayer GameDev @ Unexpected
                

                Mon CV

                1 Reply Last reply
                0
                • D
                  D
                  davydavek
                  wrote on last edited by
                  #8

                  <p>Je vient de trouver un bug:</p>
                  <p> </p>
                  <p>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 <em>la dernière</em> 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.</p>
                  <p>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.</p>

                  C# dev
                  github.com/DavyWk

                  1 Reply Last reply
                  0
                  • AzadA
                    AzadA
                    Azad
                    wrote on last edited by
                    #9

                    <p>Besoin d'aide pour résoudre ça ?</p>

                    Administrateur du forum.
                    Contactez-moi par message privé ou par mail.

                    1 Reply Last reply
                    0
                    • D
                      D
                      davydavek
                      wrote on last edited by
                      #10

                      <p>Si quelqu'un sait comment être sur que la connexion est toujours ouverte sans avoir a envoyer de données, je suis tout ouï.</p>
                      <p>Sinon je devrais juste trouver une solution en changeant l'organisation des fonctions d'envoi.</p>

                      C# dev
                      github.com/DavyWk

                      1 Reply Last reply
                      0
                      • AlexMogA
                        AlexMogA
                        AlexMog
                        Modérateur spécialisé
                        wrote on last edited by
                        #11

                        <blockquote class="ipsQuote" data-cite="davydavek" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="12105" data-ipsquote-contentid="1086" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1413214951" data-ipsquote-username="davydavek"><div>
                        <div>
                        <p>Si quelqu'un sait comment être sur que la connexion est toujours ouverte sans avoir a envoyer de données, je suis tout ouï.</p>
                        <p>Sinon je devrais juste trouver une solution en changeant l'organisation des fonctions d'envoi.</p>
                        </div>
                        </div></blockquote>
                        <p>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</p>

                        Multiplayer GameDev @ Unexpected
                        

                        Mon CV

                        1 Reply Last reply
                        0
                        • D
                          D
                          davydavek
                          wrote on last edited by
                          #12

                          <p>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 😞 </p>

                          C# dev
                          github.com/DavyWk

                          1 Reply Last reply
                          0
                          • AlexMogA
                            AlexMogA
                            AlexMog
                            Modérateur spécialisé
                            wrote on last edited by
                            #13

                            <blockquote class="ipsQuote" data-cite="davydavek" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="12117" data-ipsquote-contentid="1086" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1413251272" data-ipsquote-username="davydavek"><div>
                            <div>
                            <p>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 😞 </p>
                            </div>
                            </div></blockquote>
                            <p>Faut revoir ta conception! Y'a quelque chose qui vas pas!</p>

                            Multiplayer GameDev @ Unexpected
                            

                            Mon CV

                            1 Reply Last reply
                            0
                            • D
                              D
                              davydavek
                              wrote on last edited by
                              #14

                              <p>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.</p>

                              C# dev
                              github.com/DavyWk

                              1 Reply Last reply
                              0
                              • D
                                D
                                davydavek
                                wrote on last edited by
                                #15

                                <p>Update:</p>
                                <p> </p>
                                <p>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.</p>
                                <p> </p>
                                <p>Commit git: <a href="https://github.com/DavyWk/POP-Lib/commit/21782a39945df2262347673d4768c61a9e68e844" rel="external nofollow">https://github.com/DavyWk/POP-Lib/commit/21782a39945df2262347673d4768c61a9e68e844</a></p>
                                <p> </p>
                                <p>edit: Fix d'un petit bug a cause de l'encodage en Base64.</p>

                                C# dev
                                github.com/DavyWk

                                1 Reply Last reply
                                0
                                • W
                                  W
                                  WelchCire
                                  Banned
                                  wrote on last edited by
                                  #16

                                  <p>I really enjoy the forum.Thanks Again. Fantastic.</p>

                                  1 Reply Last reply
                                  0
                                  • D
                                    D
                                    davydavek
                                    wrote on last edited by
                                    #17

                                    <p>You're welcome 😉 </p>

                                    C# dev
                                    github.com/DavyWk

                                    1 Reply Last reply
                                    0

                                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                    With your input, this post could be even better 💗

                                    Register Login
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    • Login

                                    • Login or register to search.
                                    Powered by NodeBB Contributors
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • World
                                    • Users
                                    • Groups