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 : 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
  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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
''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.