Hi marabu,
Das hab i schon gewußt, aber i weiß nicht wie.
Account und Passwort ist alles vorhanden,das übergebe ich dann als anmelde info mit
Ich will halt von manchen PCs ohne Outlook Emailen können,direkt über
SMTP Server geht von usnerer IT Sicherheit nicht.
Habe hier einen Link allerdings für VB:
MAPI Control VB
Wen nes möglich wäre kannst du mir a bisserl helfen bei dem Thema?
Habe bis jetzt nur Email übers Outlook Profile geschickt, das heißt nur eine neue Email geöffnet.
Der absolute Luxus für mein Tool wäre, wenn ich ohne Outlook und in einer Extra Form eine Email mit mehreren Empfängern,ev. Liste vom Exchange Profile ( Adressbuch),
und schreiben ,speicher und senden kann m it anhang.
Vielen Dank.
Anbei mal der Code SendMail , den habe ich wo her und mit deinem ( mehrere Empfänger ) aktualisiert )
Delphi-Quellcode:
function SendMail(const Subject, Body, FileName,
SenderName, SenderEMail,
RecipientName, RecipientEMail: string): Integer;
var
Message: TMapiMessage;
lpSender, lpRecipient: TMapiRecipDesc;
FileAttach: TMapiFileDesc;
//neu
recips: array of MapiRecipDesc;
rl: TStrings;
i: integer;
//
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;
///
rl := TStringList.Create;
rl.LoadFromFile('c:\test.txt');
SetLength(recips, rl.Count);
ZeroMemory(@recips[0], SizeOf(MapiRecipDesc) * rl.Count);
for i := Low(recips) to High(recips) do
with recips[i] do
begin
ulRecipClass := MAPI_TO;
lpszName := PChar(rl[i]);
end;
rl.Free;
///
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 := rl.Count;
// lpRecips := recips;
// 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;