AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Outlook steuern; Bezug auf eine neue E-Mail

Outlook steuern; Bezug auf eine neue E-Mail

Ein Thema von Cyberaxx · begonnen am 6. Sep 2021 · letzter Beitrag vom 7. Sep 2021
Antwort Antwort
Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#1

Outlook steuern; Bezug auf eine neue E-Mail

  Alt 6. Sep 2021, 13:33
Hallo liebe Community,

über ein Programm erstelle ich in Outlook eine neue E-Mail mit Body und Anhang.

Delphi-Quellcode:
procedure TForm3.btn3Click(Sender: TObject);
var
  Outlook: OLEVariant;
  MailItem: Variant;
  SL: TStringList;
  S: string;
begin
  try
    Outlook := GetActiveOleObject('Outlook.Application');
  except
    Outlook := CreateOleObject('Outlook.Application');
  end;
  MailItem := Outlook.CreateItem(0);
  MailItem.Subject := edtSubject.Text;
  MailItem.Attachments.Add(Filename);
  { 20200812 - Automatik Handbücher anhängen }
  if (edtAutomation.Text = 'KME1') then
    MailItem.Attachments.Add('....pdf')
  else
  if ((edtAutomation.Text = 'KMB4') or (edtAutomation.Text = 'KM4.1')) then
    MailItem.Attachments.Add('....pdf');

  if edtDokTyp.Text = 'REthen
  begin
    SL := TStringList.Create;
    try
      SL.LoadFromFile('..\Vorlagen\default_rechnungsausgang.html');

      S := SL.Text;
      S := StringReplace(S,'@FULLNAME@',Name_,[rfReplaceAll]);
      S := StringReplace(S,'@USERDEF1@',Abteilung_,[rfReplaceAll]);
      S := StringReplace(S,'@USERDEF2@',Position_,[rfReplaceAll]);
      S := StringReplace(S,'@PHONE@',Telefon_,[rfReplaceAll]);
      S := StringReplace(S,'@FAX@',Fax_,[rfReplaceAll]);
      S := StringReplace(S,'@EMAIL@',EMail_,[rfReplaceAll]);
      SL.Text := S;

      MailItem.HTMLBody := SL.Text;
    finally
      SL.Free;
    end;
  end
  else
  if edtDokTyp.Text = 'ABthen
  begin
    SL := TStringList.Create;
    try
      SL.LoadFromFile('..\Vorlagen\default_auftrag_ausgang.html');

      S := SL.Text;
      S := StringReplace(S,'@FULLNAME@',Name_,[rfReplaceAll]);
      S := StringReplace(S,'@USERDEF1@',Abteilung_,[rfReplaceAll]);
      S := StringReplace(S,'@USERDEF2@',Position_,[rfReplaceAll]);
      S := StringReplace(S,'@PHONE@',Telefon_,[rfReplaceAll]);
      S := StringReplace(S,'@FAX@',Fax_,[rfReplaceAll]);
      S := StringReplace(S,'@EMAIL@',EMail_,[rfReplaceAll]);
      SL.Text := S;

      MailItem.HTMLBody := SL.Text;
    finally
      SL.Free;
    end;
  end
  else
  if edtDokTyp.Text = 'TGthen
  begin
    SL := TStringList.Create;
    try
      SL.LoadFromFile('..\Vorlagen\default_tg_ausgang.html');

      S := SL.Text;
      S := StringReplace(S,'@FULLNAME@',Name_,[rfReplaceAll]);
      S := StringReplace(S,'@USERDEF1@',Abteilung_,[rfReplaceAll]);
      S := StringReplace(S,'@USERDEF2@',Position_,[rfReplaceAll]);
      S := StringReplace(S,'@PHONE@',Telefon_,[rfReplaceAll]);
      S := StringReplace(S,'@FAX@',Fax_,[rfReplaceAll]);
      S := StringReplace(S,'@EMAIL@',EMail_,[rfReplaceAll]);
      SL.Text := S;

      MailItem.HTMLBody := SL.Text;
    finally
      SL.Free;
    end;
  end;

  MailItem.Display;
  Outlook.ActiveWindow.Activate;
Wie habe ich allerdings die Möglichkeit nachher auf die bereits erstelle E-Mail noch einmal Bezug zu nehmen bzw. generell auf E-Mails im Entwurfmodus zugreifen?

greenshot_screen.png

Das Programm ist ein kleiner PDF Viewer mit der Funktion das Dokument direkt in einer E-Mail zu versenden in dem ich eine erstelle.
Wenn ich nun ein anderes Dokument öffne (neue Instanz), würde ich gerne dieses Dokument ebenfalls an die bereits erstellte E-Mail packen.

Leider bin ich bisher mit meinen Suchbegriffen nicht fündig geworden.

Mit freundlichen Grüßen
Daniel
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
322 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Outlook steuern; Bezug auf eine neue E-Mail

  Alt 6. Sep 2021, 21:21
hallo,
vielleciht hilft das weiter

https://www.xing.com/communities/pos...ern-1002110387

https://docs.microsoft.com/de-de/off...defaultfolders

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Outlook steuern; Bezug auf eine neue E-Mail

  Alt 7. Sep 2021, 09:18
Hallo mmw,

ja das war ein guter Hinweis aber ich bekomme leider nicht die Anzahl an richtigen Elementen angezeigt.

Geöffnet ist Outlook, neue Mail (Hier Mail1), neue Mail (Mail Nummer 2) und neue Mail (Unbenannt).
Im Ordner Entwürfe werden aber nur zwei E-Mails angezeigt. Die Mail (Unbenannt) taucht dort aber nicht auf, erst wenn diese Mail einen Betreff bekommt mit einer kleinen Zeitverzögerung.

Ich muss mal schauen wie es sich auf mein Programm auswirkt.
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat
Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Outlook steuern; Bezug auf eine neue E-Mail

  Alt 7. Sep 2021, 09:35
Leider klappt das so noch nicht. Wenn ich aus meinem Programm die E-Mail erstelle hat sie zwar einen Betreff aber es dauert elendig lange bis sie im Ordner Entwürfe sichtbar wird.
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat
Edelfix

Registriert seit: 6. Feb 2015
Ort: Stadtoldendorf
213 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Outlook steuern; Bezug auf eine neue E-Mail

  Alt 7. Sep 2021, 09:50
Laut folgender Beschreibung hat das Mailitem die Funktion "Safe".

https://docs.microsoft.com/de-DE/off...tlook.MailItem
  Mit Zitat antworten Zitat
Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#6

AW: Outlook steuern; Bezug auf eine neue E-Mail

  Alt 7. Sep 2021, 14:25
Das ist natürlich nicht ganz die passende Lösung aber sie funktioniert.

Vielen Dank für die Tips.
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 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