Envoyer et recevoir des mails avec pièces jointes et uniquement avec winsock...

Soyez le premier à donner votre avis sur cette source.

Vue 22 664 fois - Téléchargée 3 599 fois

Description

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 interférer avec votre client de messagerie.

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

La classe CMail gère une partie de la spécification MIME (création et lecture) :
-> multipart
-> pièces jointes multiples
-> message HTML/Plain text alternatif
-> images incluses (en pièces jointes) dans le code HTML
-> charset non us-ascii (principalement iso-8859-1 : caractères accentués)
-> Base64 pour les fichiers binaires et Quoted-Printable pour les textes
et From, To, Cc, Bcc multiples

L'interface n'est pas très développée. Elle gére des comptes de messagerie autonome. Elle permet de composer des mails multipart et de les lire (pièces 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 liées. Un mini fichier d'aide est inclu pour les méthodes dont le nom ne donne pas d'explication.

L'implémentation des méthodes Base64 (dont le code n'est pas entièrement de moi) et QP se trouve dans une dll C pour optimiser la vitesse d'exécution.

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

Décompresser 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 inspirée 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 répertoire VC\lib
-> le dossier openssl du fichier openss-src (sources) dans le répertoire VC\include
-> distribuer libeay32.dll et libssl32.dll avec Auth.dll

Conclusion :


Ce code a été testé sous XP. Les codes des dll sont inclus.

N'hésitez pas à commenter et à noter...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
185
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
20 juin 2013

Bonjour,
J'aimerais bien testé dans ce code l'envoi d'un mail, mais je n'y parviens pas, j'obtiens toujours Auth.dll introuvable. Pourtant elle figure bien dans le dossier de l'application ! A tout hasard je l'ai aussi copiée dans w\system32. J'ai aussi téléchargé libeay32.dll et libssl.dll que j'ai placées dans le répertoire de l'appli. Quelque chose m'échappe ! Merci de me dire comment faire pour tester complètement ce code qui me paraît au demeurant Super puissant, car déjà il gère le smtp-auth et le HTML, c'est super !
Alors comment faire avec Auth.dll ?
Cordialement
Messages postés
5
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
15 août 2009

Bravo monsieur
Messages postés
1
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
14 novembre 2007

Un autre petit bug que je ne comprend pas
C'est quand j'ai un e-mail provenant d'un robot que Outlook lit très bien mais pas ta classe MIME
Le fichier attacher est un petit csv sauvegarder en octect/binary
Regarde ce .eml
Sauve ce texte dans un .eml et ouvre le avec ton code ..
J'aimerais être capable de trouver mais je ne suis pas le meilleur dans les parser ..surtout que c'est pas moi qui l'ai fait
Alors si tu peux m'aider a trouver pourquoi ..
Juste ca serais le top des top ..


Received: from HOSEXCHMB02.ho.mail.com ([10.1.1.41]) by HOSEXCHMB01.ho.mail.com with Microsoft SMTPSVC(6.0.3790.3959);
Wed, 14 Nov 2007 07:11:52 -0500
Received: from hosrelay1.ho.mail.com ([10.51.1.40]) by HOSEXCHMB02.ho.mail.com with Microsoft SMTPSVC(6.0.3790.3959);
Wed, 14 Nov 2007 07:11:52 -0500
Received: from ([165.130.204.248])
by bridget.magasinhardware.com with ESMTP id KP-BRCFH.32276701;
Wed, 14 Nov 2007 07:11:23 -0500
Received: from cphpta28.magasinhardware.com ([165.130.232.221]) by CPWIEX24 with Microsoft SMTPSVC(6.0.3790.3959);
Wed, 14 Nov 2007 07:10:40 -0500
Received: from cphpta28 (netops@localhost [127.0.0.1])
by cphpta28.magasinhardware.com (8.9.3 (PHNE_29773)/8.8.6) with SMTP id HAA02896
for hdreports@ll.mail.com; Wed, 14 Nov 2007 07:10:28 -0500 (EST)
Date: Wed, 14 Nov 2007 07:10:28 -0500 (EST)
From: dc_support@magasinhardware.com
Message-Id: <200711141210.HAA02896@cphpta28.magasinhardware.com>
Subject: LUMBER LICENSE TAG SUMM. SPREADSHEET 5797
Reply-To: dc_support@magasinhardware.com
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="VGhpcyBpcyBuZXR3b3JrIHByb2R1Y3Rpb24g"
Bcc:
Return-Path: dc_support@magasinhardware.com
X-OriginalArrivalTime: 14 Nov 2007 12:10:40.0713 (UTC) FILETIME=[5FBCAB90:01C826B7]
X-TM-AS-Product-Ver: SMEX-7.0.0.1499-5.0.1023-15544.003
X-TM-AS-Result: No--13.403800-8.000000-31

--VGhpcyBpcyBuZXR3b3JrIHByb2R1Y3Rpb24g
Content-Type: octet/binary; name="DAAa09392.csv"
Content-Transfer-Encoding: base64

RE9SNjM1LCxMSUNFTlNFIFRBRyBTVU1NQVJZIFJFUE9SVCwsLCwsLCwsLCxEQVRFOiAxMS8xNC8w
NywNCkRDICM1Nzk3LCxDT05TSUdOTUVOVCBBTkQgTk9OLUNPTlNJR05NRU5ULCwsLCwsLCwsLFRJ
TUU6IDA3OjAzOjQ0LA0KDQosDQoNCkRFUFQ6ICAgICAgMjEsLCwsLCwsLCwsQ1VSIFdLLENVUiBX
SyxQUkVWIFdLLA0KLCwsLCwsVEFHUyxUQUdTLE9ILE9ILFNIUEQsU0hQRCxTSFBELA0KU1RBVFVT
LFNLVSxERVNDUklQVElPTixWRU5ET1IsLENPTlMsTUlOLE1BWCxUQUdTLFBJRUNFUyxUQUdTLFBJ
RUNFUyxQSUVDRVMsSCBXT1MsDQogLCAzNjEtMDE4LE1BR0FTSU4gUEFORUxTIDInWDInICAgICAg
ICAgICw3Mjg0NCAsTUFHQVNJTiBDT05TSUdOTSAsWSwgICAxMiwgICAzNiwgICAyOCwgICAzMzYw
LCAgICA3LCAgICA4NDAsICAgMTA4MCwgMi43NSwNCiAsIDM2Mi02NzEsTEVWRUxJTkcgS0lUUyAg
ICAgICAgICAgICAgICAgLDcyODQ0ICxNQUdBU0lOIENPTlNJR05NICxZLCAgICA0LCAgIDEyLCAg
IDIyLCAgICAyNjQsICAgIDEsICAgICAxMiwgICAgIDEyLDIyLjAwLA0KVE9UQUxTOiwsLCwsLCws
ICAgNTAsICAgMzYyNCwgICAgOCwgICAgODUyLA0KDQpOT1RFOiBXT1MgQ09MVU1OID0gKioqKiog
SU5ESUNBVEVTIElUIFdBUyBOT1QgQUJMRSBUTyBCRSBDQUxDVUxBVEVELiwNClMgLSBTZWFzb25h
bCAgTyAtIE91dCBPZiBTZWFzb24gIEkgLSBJbmFjdGl2ZSAgQyAtIENsZWFyYW5jZSAgRCAtIERl
bGV0ZSAsDQogDQo=

--VGhpcyBpcyBuZXR3b3JrIHByb2R1Y3Rpb24g--
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
salut,

it should be corrected now...

ShareVB
Messages postés
1
Date d'inscription
mardi 26 septembre 2006
Statut
Membre
Dernière intervention
26 septembre 2006

If I have this subject:
Message subject with special char: (!"£$%&/()=?^)[èòàùì]
the Function Demangler goes in error, try it.
bubu five
bfive@email.it
Afficher les 44 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.