Comment envoyer un mail? [Résolu]

Signaler
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Bonjour,

Comme certains pourrons l'apercevoir, j'ai déjà posé cette question mais aucune réponse ne m'a été apportée. C'est pourquoi je la repose.

<hr />
j'ai un problème avec MAPISendMail,
lorsque je choisi un envoyeur, celui-ci n'est pas pris en compte et le message est envoyé avec mon adresse de messagerie par defaut sur Outlook express. Si je ne possède pas de compte outlook, le message ne part part.

Ma fonction pour envoyer des mails est fortement inspirée de la source de
http://www.cppfrance.com/codes/ENVOYER-MAIL-AVEC-PIECE-JOINTE-UTILISE-MAPI-VCPLUSPLUS_9872.aspx
La voici :

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);
}

Comment faire pour que nomfrom[100] et adressefromTemp[110] soient les "coordonnées" de l'expéditeur? Et que mon adresse par defaut ne soit pas utilisé comme expéditeur : enfin, qu'elle ne soit pas visible par le destinataire qui ne recevra que l'adresseet le nom contenue dans adressefromTemp et nomfrom?

<hr />
Si toute fois, vous ne savez pas comment fonctionne MAPI, pouvez-vous si vous connaissez une autre manière d'envoyer un mail, m'en faire part et de m'expliquer comment l'utiliser.

<hr />
En C API Win32...
Merci d'avance et à bientôt.

Nico

5 réponses

Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009

Salut je viens de poster une source qui devrais t'aider,

http://www.cppfrance.com/code.aspx?ID=43911

CIAO bon codage
Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009

bon pour envoyer un mail c'est assez simple c'est un standard, la communicaion est de type TELNET, faire une recherche sur les rfc SMTP, quelques codes sont assez bien fait sur le site pour t'expliqué comment faire,

pour la pièce jointe il faut coder le fichier en BASE64, sa a l'air compliqué comme sa mais un programme en C/C++ qui permet d'envoyer un mail avec fichier en moin de 300 lignes de codes c'est fesable , voila bon codage :)
Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009

si tu es trop désemparé je te ferait un code d'exemple ^^
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
3
Et bien pour la proposition du code d'exemple...
Je dirais pourquoi pas parce que je ne vois pas du tout comment m'y prendre.
Merci d'avance

<hr />

Et à bientôt.

Nico
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
3
Merci pour tous ces conseils je vais aller voir ta source

Et encore merci...

Nico