Registriert seit: 15. Jul 2005
311 Beiträge
Delphi XE5 Professional
|
Outlook steuern; Bezug auf eine neue E-Mail
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 = 'RE' then
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 = 'AB' then
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 = 'TG' then
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?
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!
|