Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi EMail in Outlook Postausgang stellen (https://www.delphipraxis.net/136138-email-outlook-postausgang-stellen.html)

Markus70 24. Jun 2009 07:59


EMail in Outlook Postausgang stellen
 
Moin.

ich möchte gerne eine Mail aus Delphi heraus in den Postausgang von Outlook stellen.
Ich hoffe, damit um die nervigen Sicherheitsabfragen beim direkten Versenden herumzukommen.


Zum direkten Versenden verwende ich folgenden Code:


Delphi-Quellcode:
function TDlgEMailForm.SendOutlookEMailDirect(empfaenger, betreff, HTMLText : string): boolean;
var i:integer;
  Outlook, NmSpace, Folder: OleVariant;
  miMail: Variant;
begin
  Outlook := CreateOleObject('Outlook.Application');
  miMail := Outlook.CreateItem(olMailItem);
  miMail.Recipients.Add(empfaenger);
  miMail.Subject := EdSubject.Text;
  miMail.HTMLBody := HTMLText;
  for i := 0 to lvFiles.Items.Count - 1 do
    miMail.Attachments.Add(lvFiles.Items[i].Caption,EmptyParam,EmptyParam,EmptyParam);
  try
//    miMail.Save; // --Ablage in Entwürfe
    miMail.Send;
    result := true;
  except
    result := false;
  end;
end;
Ich hätte es versucht mit

Delphi-Quellcode:
 miMail.Move(NmSpace.GetDefaultFolder(olFolderOutbox))
aber dann bekomme ich als Fehler "Undeklarierter Bezeichner:'olfolderOutbox'" zurück.

Was fehlt mir hier?


Welche Möglichkeiten gibt denn überhaupt Mails ohne Sicherheitsabfrage über Outlook zu versenden?

Danke und Gruß
Markus

Keldorn 24. Jun 2009 16:44

Re: EMail in Outlook Postausgang stellen
 
Hallo

die Sicherheitswarnung kommt, sobal du versuchst, eine Mail zu senden oder auf die Kontakte zugreifst.
Wenn du damit leben kannst: Mail erstellen, keinen Empfänger füllen und die mail per mailitem.display anzeigen. Nutzer kann dann den Empfänger selber auswählen und die mail senden.

Zum Thema Sicherheitswarnungen: lies Dir diesen Thrad mal durch: http://www.delphipraxis.net/internal...410&highlight= .Ansonsten mal den Link zu MS genauer durchlesen, das ist bei mir schon recht lange her.

Gruß Frank

Markus70 24. Jun 2009 17:30

Re: EMail in Outlook Postausgang stellen
 
Hallo,

Zitat:

Zitat von Keldorn
die Sicherheitswarnung kommt, sobal du versuchst, eine Mail zu senden oder auf die Kontakte zugreifst.

das weiß ich.

Zitat:

Zitat von Keldorn
Wenn du damit leben kannst: Mail erstellen, keinen Empfänger füllen und die mail per mailitem.display anzeigen. Nutzer kann dann den Empfänger selber auswählen und die mail senden.

Nein, damit kann ich leider nicht leben.
Deswegen möchte ich ja versuchen die fertigen Mails einfach nur in den Postausgangordner zu speichern.
Wenn ich sie in den Entwurfsordner speichern kann, muß ich sie doch auch irgendwie in den Postausgangsordner bekommen, oder?

Gruß
Markus

GHorn 25. Jun 2009 10:21

Re: EMail in Outlook Postausgang stellen
 
@ Markus70

Delphi-Quellcode:
const olFolderOutbox = 4;
Damit sollte es gehen.

Der Warnhinweis kommt aber m. W. bereits, wenn
Delphi-Quellcode:
MailItem.Recipients.Add('Nobody@Desert.com')
aufgerufen wird.

Gruß,
Gerald

Bernhard Geyer 25. Jun 2009 10:29

Re: EMail in Outlook Postausgang stellen
 
Zitat:

Zitat von Markus70
Nein, damit kann ich leider nicht leben.
Deswegen möchte ich ja versuchen die fertigen Mails einfach nur in den Postausgangordner zu speichern.
Wenn ich sie in den Entwurfsordner speichern kann, muß ich sie doch auch irgendwie in den Postausgangsordner bekommen, oder?

In den verlinkten Beitrag sind doch ein paar Hinweise um andere Zugriffe welche nicht diese Meldung bringen.

Über den bisher eingeschlagenen Weg wirst du den Hinweis nicht wegbekommen. Denn wenn das mit "normalen" Mitteln möglich wäre, würde jede Wurm/Virus das genauso machen und die Warnung damit sinnlos sein.

shmia 25. Jun 2009 10:49

Re: EMail in Outlook Postausgang stellen
 
Du kannst natürlich auch an Outlook vorbei arbeiten und deine EMails direkt über SMTP beim Exchange-Server einliefern.
Die BCC-Adresse kann auf den Absender gesetzt werden, damit der Absender eine Kopie der Email erhält.

Markus70 25. Jun 2009 14:00

Re: EMail in Outlook Postausgang stellen
 
@Gerald

Wenn ich jetzt versuche die Mail in den Postausgangordner zu verschieben,

Delphi-Quellcode:
    miMail.Move(NmSpace.GetDefaultFolder(olFolderOutbox));
bekomme ich eine OLE Exception zurück.
Die Mails werden zwar korrekt in den Ordner gestellt, aber beim automatischen Senden/Empfangen nicht angerührt.
Hilft mir also leider auch nicht.



@Bernhard

vielleicht liegt es ja an mir, aber wirklich viel hilfreiches habe ich in dem verlinketen Beitrag nicht gefunden.

Hat nicht irgendwer ein Stück Beispielcode dafür?



@shima
das ist sicherlich eine Alternative. Hat zwar auch ein paar Nachteile, ist dafür aber auch deutlich schneller.

Gruß
Markus

GHorn 25. Jun 2009 14:59

Re: EMail in Outlook Postausgang stellen
 
Zitat:

bekomme ich eine OLE Exception zurück.
wie hast Du denn den "NmSpace" definiert?

Zitat:

Die Mails werden zwar korrekt in den Ordner gestellt, aber beim automatischen Senden/Empfangen nicht angerührt.
Hilft mir also leider auch nicht.
stimmt - das wäre dann die nächste Baustelle.

SMTP scheint mir hier auch die bessere Wahl.

Keldorn 25. Jun 2009 20:38

Re: EMail in Outlook Postausgang stellen
 
Zitat:

Zitat von Markus70
vielleicht liegt es ja an mir, aber wirklich viel hilfreiches habe ich in dem verlinketen Beitrag nicht gefunden.

Hat nicht irgendwer ein Stück Beispielcode dafür?

unter http://support.microsoft.com/kb/263297/DE/
da steht beschrieben, wie es funktioniert und mit ziemlich weit unten:
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Secu rity\CheckAdminSettings auf 1 setzen, kommt keine Warnung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz