Bonjour,

J'ai trouvé sur le net cette procédure qui fonctionne bien pour envoyer des mails

Je l'appelle avec cette instruction
SendMail(adresse_destinataire,nom du destinataire,objet,Corps du message,chemin de la pièce jointe,nom de la piece jointe, vrai ou faux pour envoi du mail en automatique , valeur retour de l'envoi )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 
 
PROCEDURE SendMail(Adresse,NomDest,MObject, MBody,PieceJointe,NomPJ,Ouvre_messagerie,bok)
 
MessageErreur est une chaîne
//bOK est un booléen = Vrai
hdlLib est un entier
hRes est un entier
//
szPieceJointe est une chaîne ASCIIZ sur 255 = PieceJointe
szNomPieceJointe est une chaîne ASCIIZ sur 255 = NomPJ
szSujet est une chaîne ASCIIZ sur 128 = MObject
szBody est une chaîne ASCIIZ sur 1000 = MBody
szAdresse est une chaîne ASCIIZ sur 255 = Adresse
szNomAdresse est une chaîne ASCIIZ sur 128 = NomDest
//
MAPI_LOGIN_UI est un entier = 0x00000001
MAPI_TO est un entier = 1;
bok  = Vrai
 
//// on regarde si on doit ouvrir le client de messagerie ou non
IF Ouvre_messagerie = True THEN 
	MAPI_LOGIN_UI=8   // on ouvre le client de messagerie
ELSE	
	MAPI_LOGIN_UI=1   // on envoi directement
FIN
 
MapiMessage est une Structure
	ulReserved est un entier
	lpszSubject est un entier
	lpszNoteText est un entier
	lpszMessageTyp est un entier
	lpszDateReceived est un entier
	lpszConversationID est un entier
	flFlags est un entier
	lpOriginator est un entier
	nRecipCount est un entier
	lpRecips est un entier
	nFileCount est un entier
	lpFiles est un entier
FIN
 
MapiFileDesc est une Structure
	ulReserved est un entier
	flFlags est un entier
	nPosition est un entier
	lpszPathName est un entier
	lpszFileName est un entier
	lpFileType est un entier
FIN
 
MapiRecipDesc est une Structure
	ulReserved est un entier
	ulRecipClass est un entier
	lpszName est un entier
	lpszAddress est un entier
	ulEIDSize est un entier
	lpEntryID est un entier
FIN
 
sMapiMessage est une MapiMessage
sMapiFileDesc est une MapiFileDesc
sMapiRecipDesc est une MapiRecipDesc
 
 
SI bok ALORS
	hdlLib = AppelDLL32("Kernel32","LoadLibraryA","MAPI32.dll")
	SI hdlLib<32 ALORS
		bok = Faux
		MessageErreur = "Impossible de charger MAPI32.DLL"
		hdlLib = 0
	FIN
FIN
 
 
SI bok ALORS
	SI PieceJointe <> "" ALORS
		sMapiFileDesc:ulReserved = Null
		sMapiFileDesc:flFlags = 0
		sMapiFileDesc:nPosition = 0xFFFFFFFF
		sMapiFileDesc:lpszPathName = &szPieceJointe
		sMapiFileDesc:lpszFileName = &szNomPieceJointe
		sMapiMessage:nFileCount = 1
		sMapiMessage:lpFiles = &sMapiFileDesc
	SINON
		sMapiMessage:nFileCount = 0
		sMapiMessage:lpFiles = Null
	FIN
 
	sMapiRecipDesc:ulReserved = Null
	sMapiRecipDesc:ulRecipClass = MAPI_TO
	sMapiRecipDesc:lpszName = &szNomAdresse
	sMapiRecipDesc:lpszAddress = &szAdresse
	sMapiRecipDesc:ulEIDSize = Null
	sMapiRecipDesc:lpEntryID = Null
 
	sMapiMessage:ulReserved = Null
	sMapiMessage:lpszSubject = &szSujet
	sMapiMessage:lpszNoteText = &szBody
	sMapiMessage:lpszMessageTyp = Null
	sMapiMessage:lpszDateReceived = Null
	sMapiMessage:lpszConversationID = Null
	sMapiMessage:flFlags = Null
	sMapiMessage:lpOriginator = Null
	sMapiMessage:nRecipCount = 1
	sMapiMessage:lpRecips = &sMapiRecipDesc
 
	hRes = AppelDLL32("MAPI32.DLL","MAPISendMail",Null,Handle(),&sMapiMessage,MAPI_LOGIN_UI,Null)
	SI hRes<> 0 ALORS
		bok = Faux
		MessageErreur = "MAPISendMail Erreur n° "+hRes
	FIN
FIN
 
SI hdlLib>0 ALORS
	AppelDLL32("Kernel32","FreeLibrary",hdlLib)
	hdlLib = 0
FIN
 
SI PAS bok ALORS
	TitreSuivant("Fonction : SendMail")
	Erreur(MessageErreur)
FIN
 
RENVOYER bok

Mon problème est que je voudrais ajouter 3 points
un destinataire en copie
une confirmation de réception
forcer un mail expéditeur sans prendre celui de la messagerie par défaut

Cette API est un peu obscur pour moi , je vais continuer à chercher mais si une personne connait cette API et peux me renseigner ce sera avec grand plaisir.

Merci d'avance

Philippe