I) Information

Ce code est un mini client de messagerie.

Il sait lire les messages sur des serveurs POP3 (classe CPOP3) et envoyer des messages sur des serveurs SMTP (classe CSMTP). Il laisse les messages sur le serveur pour ne pas interfrer avec votre client de messagerie.

Il permet aussi de grer POP3S et SMTPS (STARTTLS) en utilisant OpenSSL. Il permet aussi de faire l'authentification SMTP (LOGIN/PLAIN/DIGEST-MD5/CRAM-MD5)...

La classe CMail gre une partie de la spcification MIME (cration et lecture) :
-> multipart
-> pices jointes multiples
-> message HTML/Plain text alternatif
-> images incluses (en pices jointes) dans le code HTML
-> charset non us-ascii (principalement iso-8859-1 : caractres accentus)
-> Base64 pour les fichiers binaires et Quoted-Printable pour les textes
et From, To, Cc, Bcc multiples

L'interface n'est pas trs dveloppe. Elle gre des comptes de messagerie autonome. Elle permet de composer des mails multipart et de les lire (pices jointes comprises). Il n'y a pas d'diteur HTML WYSIWYG masi un panel d'dition MANUEL d'HTML et un preview avec le WebBrowser de IE.

Toutes les classes sont lies. Un mini fichier d'aide est inclu pour les mthodes dont le nom ne donne pas d'explication.

L'implmentation des mthodes Base64 (dont le code n'est pas entirement de moi) et QP se trouve dans une dll C pour optimiser la vitesse d'excution.

Le code de la gestion de l'authentification et de TLS est dans une autre DLL parce que les codes des fonctions de hachages sont disponibles principalement en C.

II) Installation

http://gnuwin32.sourceforge.net/packages/openssl.htm

Dcompresser le fichier openssl-bin (binaries) et extraire libeay32.dll et libssl32.dll dans le dossier du projet VB

III) Le code des dlls

Le code de base64 de MIMECode.dll provient de http://www.daylight.com/daycontrib/libdu/http/du_http_base64.c que j'ai "dlliz"...

Le code de Auth.dll :
-> SSL/TLS : simple wrapper (ou presque) de l'API de OpenSSL inspire de http://www.rtfm.com/openssl-examples/
-> DIGEST-MD5 : l'algo vient d'un script perl
-> LOGIN/PLAIN : par moi...pas trop compliqu
-> CRAM-MD5 : http://www.net-track.ch/opensource/cmd5/ "dlliz"
md5c.c is Copyright (C) 1991-1992 by RSA Data Security, Inc.
hmac_md5.c is taken from RFC2104.

IV) Compilation de Auth.dll

Pour pouvoir compiler Auth.Dll il vous faut VC++ 2005 et installer OpenSSL : http://gnuwin32.sourceforge.net/packages/openssl.htm
-> le contenu de lib du fichier openssl-lib (developer files) dans le rpertoire VC\lib
-> le dossier openssl du fichier openss-src (sources) dans le rpertoire VC\include
-> distribuer libeay32.dll et libssl32.dll avec Auth.dll
