Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi EMail über Outlook 2003 versenden (https://www.delphipraxis.net/176174-email-ueber-outlook-2003-versenden.html)

HolgerCW 16. Aug 2013 14:23

Delphi-Version: 2006

EMail über Outlook 2003 versenden
 
Hallo zusammen,

es wurde bestimmt schon 100mal gepostet, aber ich konnte leider das ganze nicht so ganz verstehen.

Wie kann ich schnell und einfach mit Delphi 2006 eine EMail inkl. Anhang versenden ?

Ich habe mit auch mal die TOutookApplication auf meine Form gezogen aber komme da nicht so wirklich weiter.

Ich denke ich brauche hier nur mal so die ersten Schritte, damit ich los legen kann ...

Über Hilfe wäre ich sehr dankbar ...

Gruss

Holger

hstreicher 16. Aug 2013 14:34

AW: EMail über Outlook 2003 versenden
 
such mal nach MAPI

Bernhard Geyer 16. Aug 2013 15:25

AW: EMail über Outlook 2003 versenden
 
In der Jedi (Jcl) gibts 'ne Unit (JclMapi) mit der man einfach über die Simple-MAPI-Schnittelle Mails (u.a. über outlook) verschicken kann.

madtom 16. Aug 2013 17:51

AW: EMail über Outlook 2003 versenden
 
Gerade getestet:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  aMailItem: _MailItem;
  aNameSpace: NameSpace;
  aFolder: MAPIFolder;
  Recipient: string;
begin
  aMailItem := OutlookApplication1.CreateItem(olMailItem) as _MailItem;
  aNameSpace := OutlookApplication1.GetNamespace('MAPI');
  aNameSpace.Logon(EmptyParam, EmptyParam, False, True);
  aFolder := aNameSpace.GetDefaultFolder(olFolderOutbox);
  Recipient := 'email@address.de';
  aMailItem.Importance := olImportanceHigh;
  aMailItem.Recipients.Add(Recipient);
  aMailItem.Attachments.Add('C:\XXX\Bild.bmp', EmptyParam, EmptyParam, EmptyParam);
  aMailItem.Subject := 'Attachment Test';
  aMailItem.Body := 'This is an Email with an Attachment';
  aMailItem.Send;
end;

mjustin 17. Aug 2013 08:26

AW: EMail über Outlook 2003 versenden
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1225148)
In der Jedi (Jcl) gibts 'ne Unit (JclMapi) mit der man einfach über die Simple-MAPI-Schnittelle Mails (u.a. über outlook) verschicken kann.

Ja, darin gibt so schöne Methoden wie:

Delphi-Quellcode:
function JclSimpleSendMail(const Recipient, Name, Subject, Body: AnsiString;
  const Attachment: TFileName = ''; ShowDialog: Boolean = True; ParentWND: THandle = 0;
  const ProfileName: AnsiString = ''; const Password: AnsiString = ''): Boolean;
und

Delphi-Quellcode:
function JclSimpleBringUpSendMailDialog(const Subject, Body: AnsiString;
  const Attachment: TFileName = ''; ParentWND: THandle = 0;
  const ProfileName: AnsiString = ''; const Password: AnsiString = ''): Boolean;
Einfacher geht es nicht, und wenn man mehr Features (zum Beispiel mehrere Attachments) benötigt kann man direkt mit der Klasse TJclEmail arbeiten.

HolgerCW 19. Aug 2013 11:05

AW: EMail über Outlook 2003 versenden
 
Danke für die Hilfen. Meine Funktion sieht nun so aus:

Delphi-Quellcode:
function EMail_versenden_Outlook(An, Cc, Text: String; Subject:String; Anhang:String; Mit_Abfrage: Boolean):Boolean;
var
 TOA:TOutlookApplication;
 MI: MailItem;
begin

 Result := FALSE;

 TOA:= TOutlookApplication.Create(Form_Email.Outlook);

 TOA.ConnectKind := ckRunningOrNew;
 try

  TOA.Connect;

 except

  TOA.Free;
  MessageDlg('Outlook kann nicht geöffnet werden!',mtError,[mbok],0);
  exit;

 end;

 MI:= TOA.CreateItem(olMailItem) as MailItem;
 MI.Attachments.Add(Anhang,emptyParam,EmptyParam,EmptyParam);
 MI.Body:= Text;
 MI.Subject:= Subject;
 MI.Companies:= 'Your Company';
 MI.Categories:='HelpDesk';
 MI.Recipients.Add(An);
 MI.CC := Cc;
 MI.Display(1);
 TOA.Disconnect;
 TOA.Free;

 Result := TRUE;

end;
Wie kann ich nun abchecken ob die E-Mail wirklich versendet wurde, oder noch besser wie kann ich die E-Mail direkt versenden, ohne das der Anwender noch eingreifen kann ?

MfG

Holger

Bernhard Geyer 19. Aug 2013 13:01

AW: EMail über Outlook 2003 versenden
 
Zitat:

Zitat von HolgerCW (Beitrag 1225292)
..., oder noch besser wie kann ich die E-Mail direkt versenden, ohne das der Anwender noch eingreifen kann ?

Gar nicht (jedenfalls nicht über diese Schnittstelle). Den diesen Wunsch/Realisierung hatten zuvor schon zig-Tausend Scrippt-Kiddies mit VBA-Würmern auch. Und irgendwann hat MS hie dicht gemacht.

Perlsau 19. Aug 2013 13:46

AW: EMail über Outlook 2003 versenden
 
Zitat:

Zitat von HolgerCW (Beitrag 1225292)
Wie kann ich nun abchecken ob die E-Mail wirklich versendet wurde, oder noch besser wie kann ich die E-Mail direkt versenden, ohne das der Anwender noch eingreifen kann ?

Bei meinen Email-Provider gibt es einen SENT-Ordner, worin Duplikate aller gesendeten Emails aufbewahrt werden. Meiner Erfahrung nach ist das Standard. Du könntest daher versuchen, mit einer entsprechenden Indy-Komponente auf diesen SENT-Ordner zuzugreifen, um nachzuschauen, ob sich die gesendete Email darin befindet. Natürlich mußt du zuvor auch dein Postfach so einstellen, daß Kopien gesendeter Mails angelegt werden.

Und du kannst natürlich auch noch in Outlook einstellen, daß du eine Rückmeldung wünschst, sobald der Empfänger die Mail geöffent hat. Letztgenannte Methode garantiert jedoch nicht mit 100%iger Sicherheit, daß die Mail tatsächlich versandt wurde, denn der Empfänger kann die Bestätigung verweigern.

HolgerCW 20. Aug 2013 10:55

AW: EMail über Outlook 2003 versenden
 
Könntest Du mir mal ein Beispiel für das Abfragen des SENT-Ordners posten ?

Gruss

Holger

mjustin 20. Aug 2013 11:19

AW: EMail über Outlook 2003 versenden
 
Zitat:

Zitat von HolgerCW (Beitrag 1225292)
Wie kann ich nun abchecken ob die E-Mail wirklich versendet wurde, oder noch besser wie kann ich die E-Mail direkt versenden, ohne das der Anwender noch eingreifen kann ?

Für direkten Versand ohne Benutzereingriff kann man SMTP verwenden, das auch von Microsoft Exchange unterstützt wird - falls nicht vorhanden, dann einfach direkt über den Mailprovider.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 Uhr.
Seite 1 von 2  1 2      

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