ENVOYER UN MAIL AVEC PIECE JOINTE (UTILISE MAPI) EN VC++

Signaler
Messages postés
67
Date d'inscription
lundi 1 juillet 2002
Statut
Membre
Dernière intervention
1 septembre 2006
-
Messages postés
1
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
9 mai 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/9872-envoyer-un-mail-avec-piece-jointe-utilise-mapi-en-vc

Messages postés
1
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
9 mai 2010

Pour information, ce code marche également avec mozzila thunderbird sous les même conditions, c'est a dire, avec une adresse mail bien configuré, sinon, c'est exactement le même principe.
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
4
Bonjour,
Juste un truc, je viens de m'apercevoir que le code pour formatter le message ne marchait qu'avec MSN hotmail.
Et pas avec Live messenger, outlook express...
Désolé pour l'erreur.
A+
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
4
Bonjour,

Pour ceux que ça interresse, je viens de découvrir une méthode permettant d'envoyer des messages formatés avec ce code.

Voici le code :

mesg est le message formatté à envoyé
et
mesgDepart est le mesage non-formatté

char mesg[31500];
strcpy ( mesg , "<HTML><HEAD>\n<META http-equiv=3DContent-Type content=3D"text/html; =\ncharset=3Diso-8859-1">\n<META content=3D"MSHTML 6.00.6000.16441" name=3DGENERATOR>\n<STYLE></STYLE>\n</HEAD>\n" );
strcat ( mesg , mesgDepart );
strcat ( mesg , "</HTML>" );

Voilà ces 3 à 4 lignes de codes rendent votre texte formatté.

A+
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
4
OUPS,

j'ai oublier de mettre le morceau de code incriminé,
il provient d'une de mes sources personnelles et est fortement inspiré du code de ENVOYER UN MAIL AVEC PIECE JOINTE (UTILISE MAPI) EN VC++.

Le voilà :

void envoyer(char nomfrom[100], char nomto[100], char adressefromTemp[110], char adresseto[100], char objet[256], char mesg[4096], char piece[1024]) {
LPMAPILOGON lpfnMAPILogon;
LPMAPISENDMAIL lpfnMAPISendMail;
LPMAPILOGOFF lpfnMAPILogoff;

LHANDLE lhSession;
HANDLE hMAPILib;
hMAPILib = LoadLibrary("MAPI32.DLL");

char adressefrom[115] = "SMTP:";
strcat(adressefrom,adressefromTemp);

MapiRecipDesc recipient = {0, MAPI_TO, nomto, adresseto, 0, NULL};
MapiRecipDesc sender = {0, MAPI_ORIG, nomfrom, adressefrom, 0, NULL};
MapiFileDesc attach = {0, 0, -1, piece, NULL, NULL};
MapiMessage message = {0, objet, mesg, NULL, NULL, NULL, 0, &sender, 1, &recipient, 1, &attach};

lpfnMAPILogon = (LPMAPILOGON)GetProcAddress((HMODULE)hMAPILib, "MAPILogon");
lpfnMAPISendMail = (LPMAPISENDMAIL)GetProcAddress((HMODULE)hMAPILib, "MAPISendMail");
lpfnMAPILogoff = (LPMAPILOGOFF)GetProcAddress((HMODULE)hMAPILib, "MAPILogoff");
(*lpfnMAPILogon)(0, NULL, NULL, 0, 0, &lhSession);
(*lpfnMAPISendMail)(lhSession, 0, &message, 0, 0);
(*lpfnMAPILogoff)(lhSession, 0, 0, 0);

FreeLibrary((HMODULE)hMAPILib);
}
Afficher les 10 commentaires