[WIN32][D7] Envoi de mail via MAPI
Salut à tous,
Je souhaiterais permettre la génération d'un mail via le client mail par défaut. Pour cela, j'ai utilisé le code présent dans la FAQ (avec quelques modifs) :
Code:
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
| function SendMail(const Subject, MessageText, MailFromName, MailFromAddress,
MailToName, MailToAddress: String; const attachments: TStringList; WinHandle: THandle = 0):
boolean;
var
MAPIError: DWord;
MapiMessage: TMapiMessage;
Originator, Recipient: TMapiRecipDesc;
Files, FilesTmp: PMapiFileDesc;
FilesCount: Integer;
begin
FillChar(MapiMessage, Sizeof(TMapiMessage), 0);
MapiMessage.lpszSubject := PChar(Subject);
MapiMessage.lpszNoteText := PChar(MessageText);
FillChar(Originator, Sizeof(TMapiRecipDesc), 0);
Originator.lpszName := PChar(MailFromName);
Originator.lpszAddress := PChar(MailFromAddress);
MapiMessage.lpOriginator := @Originator;
MapiMessage.nRecipCount := 1;
FillChar(Recipient, Sizeof(TMapiRecipDesc), 0);
Recipient.ulRecipClass := MAPI_TO;
Recipient.lpszName := PChar(MailToName);
Recipient.lpszAddress := PChar(MailToAddress);
MapiMessage.lpRecips := @Recipient;
MapiMessage.nFileCount := attachments.Count;
Files := AllocMem(SizeOf(TMapiFileDesc) * MapiMessage.nFileCount);
MapiMessage.lpFiles := Files;
FilesTmp := Files;
for FilesCount := 0 to attachments.Count-1 do
begin
FilesTmp.nPosition := $FFFFFFFF;
FilesTmp.lpszPathName := PChar(attachments[FilesCount]);
Inc(FilesTmp)
end;
try
MAPIError := MapiSendMail(0, 0,
MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
result:= MAPIError = 0;
finally
FreeMem(Files)
end
end; |
Puis j'appelle cette fonction de la manière suivante :
Code:
1 2 3
| bMailSent := SendMail(
'Mon Sujet', 'Le contenu de mon mail','Mon Adresse Mail','Mon Adresse Mail','Le mail du destinataire', 'Le mail du destinataire', slAttachments);
// slAttachments étant un Tstringlist |
Malgré tout, je rencontre un problème assez étrange.
Lors de l'envoi de ce mail, ce dernier semble tout à fait correct cependant, lors de la reception de celui-ci, je me rends compte que le mail du destinataire a été modifié :
devient
Code:
''toto@domaine.com''@orange.fr
Je n'arrive pas a saisir pourquoi cette adresse est modifiée et cela semble très problématique pour l'envoi de la plus part des mails.
Il s'agit surement d'un problème tout bête, mais impossible de mettre le doigt dessus...
Quelqu'un a-t-il déjà été confronté au problème ?
Avez vous une idée de ce qui provoquerait cela ?
Merci d'avance.