Hallo,
Habe in der Zeit was gefunden, aber leider einen neuen Fehler drin gehabt.
Bitte um Hilfe bin etwas Ratlos.
1. Function
Delphi-Quellcode:
function SendMail(const Subject, Body, FileName,
SenderName, SenderEMail,
RecipientName, RecipientEMail: string): Integer;
var
Message: TMapiMessage;
lpSender, lpRecipient: TMapiRecipDesc;
FileAttach: TMapiFileDesc;
SM: TFNMapiSendMail;
MAPIModule: HModule;
begin
FillChar(Message, SizeOf(Message), 0);
with Message do
begin
if (Subject <> '') then
lpszSubject := PChar(Subject);
if (Body <> '') then
lpszNoteText := PChar(Body);
if (SenderEmail <> '') then
begin
lpSender.ulRecipClass := MAPI_ORIG;
if (SenderName = '') then
lpSender.lpszName := PChar(SenderEMail)
else
lpSender.lpszName := PChar(SenderName);
lpSender.lpszAddress := PChar(SenderEmail);
lpSender.ulReserved := 0;
lpSender.ulEIDSize := 0;
lpSender.lpEntryID := nil;
lpOriginator := @lpSender;
end;
if (RecipientEmail <> '') then
begin
lpRecipient.ulRecipClass := MAPI_TO;
if (RecipientName = '') then
lpRecipient.lpszName := PChar(RecipientEMail)
else
lpRecipient.lpszName := PChar(RecipientName);
lpRecipient.lpszAddress := PChar(RecipientEmail);
lpRecipient.ulReserved := 0;
lpRecipient.ulEIDSize := 0;
lpRecipient.lpEntryID := nil;
nRecipCount := 1;
lpRecips := @lpRecipient;
end
else
lpRecips := nil;
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
Result := -1
else
try
@SM := GetProcAddress(MAPIModule, 'MAPISendMail');
if @SM <> nil then
begin
Result := SM(0, Application.Handle, Message, MAPI_DIALOG or MAPI_LOGON_UI, 0);
end
else
Result := 1;
finally
FreeLibrary(MAPIModule);
end;
if Result <> 0 then MessageDlg('Email wurde nicht gesendet.', mtError,[mbOK], 0);
if Result = 0 then MessageDlg('Email wurde gesendet , und unter C:\MEKM Tool\Logbuchberichte abgelegt.', mtInformation,[mbOK], 0);
end;
Aufrufen tue ich das so;
Delphi-Quellcode:
Visible:=false;
SendMail(strSubject,'Hallo Kollegen','c:\MEKM Tool\Logbuch Berichte\Logbuch Bericht '+DateToStr(date)+' - ID'+edit22.text+'.pdf','','','',strEmail);
Visible:=true;
Jetzt mein Problem: Den Empfänger ,wo ich aus Namen zusammen bastle:
String sieht so aus 'Name1;name2;name3;name4'
Aber er macht die Email auf und schreibt alle als 1namen hinein,
Wie muß ich das abändern?
2. Möglichkeit ist die von mir oben ohne MailItem.Send , da macht er aber nix auf.
Mir wäre die 1. Function am liebsten,nur wenn die Empfänger mehr als 1 angezeigt werden.
Muß ich da ev. den Wert nRecipCount := 1; in der Function ändern.
Danke.