function SendMailMAPI(
const Subject, Body, FileName, SenderName, SenderEMail,
RecepientName, RecepientEMail:
String) : Integer;
var
msg: TMapiMessage;
lpSender,
lpRecepient: TMapiRecipDesc;
FileAttach: TMapiFileDesc;
SM: TFNMapiSendMail;
MAPIModule: HModule;
begin
FillChar(msg, SizeOf(msg), 0);
with msg
do
begin
if (Subject<>'
')
then
begin
lpszSubject := PChar(Subject)
end;
if (Body<>'
')
then
begin
lpszNoteText := PChar(Body)
end;
if (SenderEMail<>'
')
then
begin
lpSender.ulRecipClass := MAPI_ORIG;
if (SenderName='
')
then
begin
lpSender.lpszName := PChar(SenderEMail)
end
else
begin
lpSender.lpszName := PChar(SenderName)
end;
lpSender.lpszAddress := PChar('
SMTP:'+SenderEMail);
lpSender.ulReserved := 0;
lpSender.ulEIDSize := 0;
lpSender.lpEntryID :=
nil;
lpOriginator := @lpSender;
end;
if (RecepientEMail<>'
')
then
begin
lpRecepient.ulRecipClass := MAPI_TO;
if (RecepientName='
')
then
begin
lpRecepient.lpszName := PChar(RecepientEMail)
end
else
begin
lpRecepient.lpszName := PChar(RecepientName)
end;
lpRecepient.lpszAddress := PChar('
SMTP:'+RecepientEMail);
lpRecepient.ulReserved := 0;
lpRecepient.ulEIDSize := 0;
lpRecepient.lpEntryID :=
nil;
nRecipCount := 1;
lpRecips := @lpRecepient;
end
else
begin
lpRecips :=
nil
end;
if (FileName='
')
then
begin
nFileCount := 0;
lpFiles :=
nil;
end
else
begin
FillChar(FileAttach, SizeOf(FileAttach), 0);
FileAttach.nPosition := Cardinal($FFFFFFFF);
FileAttach.lpszPathName := PChar(FileName);
nFileCount := 1;
lpFiles := @FileAttach;
end;
end;
MAPIModule := LoadLibrary(PChar(MAPIDLL));
if MAPIModule=0
then
begin
Result := -1
end
else
begin
try
@SM := GetProcAddress(MAPIModule, '
MAPISendMail');
if @SM<>
nil then
begin
Result := SM(0, Application.Handle, msg, MAPI_DIALOG
or MAPI_LOGON_UI, 0);
// Result := SM(0, Application.Handle, msg, 0, 0);
end
else
begin
Result := 1
end;
finally
FreeLibrary(MAPIModule);
end;
end;
if Result<>0
then
begin
MessageDlg('
Fehler beim Versenden ('+IntToStr(Result)+'
).', mtError, [mbOk], 0);
end;
end;
...
procedure Tfrm_main.tbtn_daten_menu_daten_sendenClick(Sender: TObject);
var
filename, subject, msg, sendername, senderemail, recepientname, recepientemail :
String;
begin
filename := '
<pfad zur Datei>'
subject := '
Betreff';
msg := '
Nachricht.';
sendername := '
Sendername';
senderemail := '
Sender@Email.de';
recepientname := '
RecepientName';
recepientemail := '
Recepient1@mail.com,Recepient2@mail.com';
SendMailMAPI(subject, msg, filename, sendername, senderemail, RecepientName, RecepientEMail);
end;