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
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,MAPI;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function SendMail(const Subject, MessageText, MailFromName, MailFromAddress,
MailToName, MailToAddress: String; const attachments: array of String; 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 := High(attachments) - Low(attachments) + 1;
Files := AllocMem(SizeOf(TMapiFileDesc) * MapiMessage.nFileCount);
MapiMessage.lpFiles := Files;
FilesTmp := Files;
for FilesCount := Low(attachments) to High(attachments) 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;
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMail('Un petit coucou', //subject
'Je veux juste te passer un coucou', // Message
'ero-sennin', // Nom de l'expéditeur
'monadresseMail@developpez.com', // Adresse mail de l'expéditeur
'toto', // Nom du destinataire
'toto@gmail.com', // Adresse mail du destinataire
[]// attachement des pièces jointes sinon
);
end;
end. |
Partager