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
|
procedure TfrmMain.btnSendClick(Sender: TObject);
Var MAPIMessage: TMAPIMessage;
MAPIFile : TMAPIFileDesc;
MAPIRecip : TMAPIRecipDesc;
MAPIRecips : Array[0..1]Of TMAPIRecipDesc;
i : Integer;
Name, tmp : String;
begin
//------------------------ Définition de MAPIFile -----------------------\\
MAPIFile.ulReserved := 0;
MAPIFile.flFlags := 0;
MAPIFile.nPosition := 0;
MAPIFile.lpszPathName := PChar(edFile.Text); //Chemin complet du fichier à joinde
MAPIFile.lpszFileName := PChar(ExtractFileName(edFile.Text));//Nom "interne" du fichier joint
MAPIFile.lpFileType := nil; //nil : le type de fichier sera déterminé par le système
//-----------------------------------------------------------------------\\
//--------------- Récupération du pseudo du destinataire ----------------\\
tmp := edAdr.Text;
For i := 1 To Length(tmp) Do
Begin
If tmp[i] = '@' Then Break
Else Name := Name + tmp[i];
end;
//-----------------------------------------------------------------------\\
//----------------------- Définition de MAPIRecip -----------------------\\
MAPIRecip.ulReserved := 0;
MAPIRecip.ulRecipClass := MAPI_TO; //Destinataire principal; MAPI_CC et MAPI_BCC pour des copies/copies cachées
MAPIRecip.lpszName := PChar(Name); //Nom du destinataire
MAPIRecip.lpszAddress := PChar(edAdr.Text); //et son adresse
MAPIRecip.ulEIDSize := 0;
MAPIRecip.lpEntryID := nil;
//-----------------------------------------------------------------------\\
MAPIRecips[0] := MAPIRecip; //MAPISendMail prend un tableau de MAPIRecipDesc en paramètre
//---------------------- Définition de MAPIMessage ----------------------\\
With MAPIMessage Do
Begin
ulReserved := 0;
lpszSubject := PChar(edSjt.Text); //Sujet du message
lpszNoteText := PChar(memTexte.Lines.Text);//Texte du message
lpszMessageType := nil; //nil lors d'un envoi
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
lpOriginator := nil; //Pointeur éventuel vers une description de l'expéditeur
nRecipCount := 1; //Nombre de destinataires
lpRecips := @MAPIRecips[0]; //On passe l'adresse du premier élément du tableau de destinataires
nFileCount := 1; //Nombre de fichiers joints
lpFiles := @MAPIFile; //Pointeur vers la description du fichier joint
end;
//-----------------------------------------------------------------------\\
//------------------------ Appel de MAPISendMail ------------------------\\
If MAPISendMail(0, 0, MAPIMessage, MAPI_NEW_SESSION or
MAPI_DIALOG, 0) <> SUCCESS_SUCCESS Then
ShowMessage('Une erreur est apparue lors de l''envoi du message')
Else ShowMessage('Envoi effectué !');
//-----------------------------------------------------------------------\\
end; |
Partager