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
|
//Enumération qui décrit le niveau de priorité du mail
enumImportance=(Bas=olImportanceLow,Normal=olImportanceNormal,Haut=olImportanceHigh);
//Structure qui décrit entièrement le mail à envoyer
TEmail = record
dDateRecept : TDateTime;
dDateCreation : TDateTime;
sSenderName : String;
sSenderMail : String;
sCC : String;
sDestinataires : String;
sSujet : String;
sContenu : String;
iPriorite : enumImportance;
iSize : integer; // en octet
iNbPiecesJointes : integer;
tCheminPiecesJointes : array of string;
end;
(...)
function TForm1.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('sujet', 'texte', 'Alain Laffite', 'a.laffite@copmania.fr',
'Sophie Caran', 's.caran@copmania.fr', []);
end; |
Partager