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

Msgbox Messages postés 67 Date d'inscription lundi 1 juillet 2002 Statut Membre Dernière intervention 1 septembre 2006 - 1 juil. 2002 à 19:38
Akabane888 Messages postés 1 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 9 mai 2010 - 9 mai 2010 à 16:39
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

Akabane888 Messages postés 1 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 9 mai 2010
9 mai 2010 à 16:39
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.
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
23 août 2007 à 16:54
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+
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
18 mai 2007 à 23:27
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+
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
18 mai 2007 à 17:12
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);
}
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
18 mai 2007 à 17:08
Bonjour,

-----

Comme le dit ma question :
http://www.cppfrance.com/infomsg_PROBLEME-AVEC-MAPISEND-MAIL_944232.aspx

Je ne parvient pas à envoyer un mail avec un expéditeur différent que celui par defaut sur outlook. Si par exemple je met a@b.c, le mail par avec mon adresse de outlook par defaut. Comment faire pour que le message soit bien envoyé avec l'adresse a@b.c?
Je dispose de windows Xp et de Outlook Express 6.
Aidez-moi s'il vous plaît!!!
Merci d'avance et à bientôt.
En tout cas à par ce problème, il s'agit d'une source interressante.

-----

A bientôt.
Afficher les 10 commentaires