Senden von HTML-Mails mit eingefügten Bildern (über Outlook ab 2007)

Thema dieses Beitrages: HTML, Delphi, Outlook, Bilder einfügen (embedded), E-mail Versand

Das Versenden von Outlook ab Version 2007 mit eingefügten Bildern im HTML ist nicht ganz trivial, zumal es überall Beispielausschnitte gibt, aber wenig konkretes, zumindest nicht in Delphi. Vielleicht habe ich es aber auch einfach nicht gefunden. Das folgende ist ein Ausschnitt mit dem man in Delphi mit Outlook Nachrichten mit eingefügten Bildern im Text versenden kann.

Der Code ist ein Auszug, z.B. hat diese Funktion natürlich Parameter, diese sind hier weggelassen, da es den Rahmen sprengen würde. Im wesentlichen werden hier Empfänger, Anhänge etc. übergeben.
Es sei auch verziehen, wenn jetzt irgendwas fehlt… aber es ist eben ein Auszug und es sollte genügen, dass jeder sich was bauen kann.

function SendwithOutlook:Bool;

const
olMailItem = 0;
olByValue = 1;
PR_ATTACH_MIME_TAG = ‚http://schemas.microsoft.com/mapi/proptag/0x370E001E‘;
PR_ATTACH_CONTENT_ID = ‚http://schemas.microsoft.com/mapi/proptag/0x3712001E‘;
PR_ATTACHMENT_HIDDEN = ‚http://schemas.microsoft.com/mapi/proptag/0x7FFE000B‘;
var
rcp, oMapi, newAttach, Outlookapp, MyAttachments: Olevariant;
strTemp, s: string;
i, x, y: Integer;
oItem: Variant;
picliste: TStringlist;
Version: string;
begin
fehler := False;
try
Outlookapp := GetActiveOleObject(‚Outlook.Application‘);
except
Outlookapp := CreateOleObject(‚Outlook.Application‘);
end;
Version := Copy(VarToStr(OutlookApp.version), 1, 2);

try
oMapi := OutlookApp.GetNamespace(‚MAPI‘);
oMapi.logon();
oItem := OutlookApp.CreateItem(olMailItem);
except
on e: exception do
begin
showmessage(‚Es ist ein Fehler bei der Outlook-Verbindung aufgetreten‘, e.message);
exit(false);
end;
end;

try
rcp := oItem.Recipients.Add(‚xyz@abc.de‘);
rcp.Type := 1;
end;

picliste := TStringlist.Create;
try
y := pos(‚ 0 do
begin
i := PosEx(‚SRC=“‚, UpperCase(Nachricht), y);
if i > 0 then
begin
x := PosEx(‚“‚, Nachricht, i + 6);
strTemp := copy(Nachricht, i + 5, x – i – 5);
picListe.Add(strTemp);
delete(Nachricht, i + 5, x – i – 5);
insert(‚cid:‘ + sysutils.ExtractFilename(StrTemp), nachricht, i + 5);
end;
y := PosEx(‚<IMG‘, UpperCase(Nachricht), y + 1);
end;

oItem.Subject := ‚Betrefftext‘;
oItem.Bodyformat := 2;
oItem.HtmlBody := ‚Ihre Nachricht‘;

// der Teil, der dafür sorgt, dass die Bilder im Text als Inline-Attachments behandelt werden
if StrToInt(version) >= 12 then
begin
if picliste.count > 0 then
begin
myAttachments := oItem.Attachments;
for i := 0 to picliste.Count – 1 do
begin
newAttach := myAttachments.add(picliste.Strings[i]);
newAttach.propertyAccessor.SetProperty(PR_ATTACH_CONTENT_ID, sysutils.ExtractFilename(picliste.Strings[i]));
newAttach.propertyAccessor.setProperty(PR_ATTACH_MIME_TAG,’image/jpeg‘); // Mime-Tag
newAttach.propertyAccessor.setProperty(PR_ATTACHMENT_HIDDEN, true);
end;
end;
oItem.save;
// das sind normale Anhänge, wenn benötigt
myAttachments := oItem.Attachments;
myAttachments.Add(dateien[i], 1, 1,’Dateixyz.txt‘);
oItem.send; // oder .display
except
on e: exception do
showmessage(‚Es ist ein Fehler beim Versenden der Nachricht aufgetreten‘, e.message);
end;
end;
finally
picliste.Free;
end;
finally
myAttachments := VarNull;
OutlookApp := VarNull;
end;
end;

Werbung

Aktuelle Top Aktionen bei Acer, HP, Lenovo, Bitdefender & Co

Angebote bei Acer
» Großer Acer Herbst Sale:Bis zu 200 Euro Rabatt auf viele Acer Notebooks, Convertibles, Gaming Notebooks und PC, Monitore und mehr bei den Acer Herbst Angeboten bis 02.10.2018


Angebote bei HP
» HP Back To School 2018: Viele HP Notebooks, Convertibles und Drucker im Angebot


Angebote bei Lenovo
» Lenovo Top Wochenangebote: Heiße ThinkPad und IdeaPad Wochenangebote mit großer Auswahl und dicken Rabatten


Weitere Möglichkeiten
» Top bei Otto: Sehr gute HP Notebook Angebote, teils mit Extras wie 4 Jahre Garantie und mehr
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick


Aktuelle Bitdefender Aktionen:
» Top Angebot: Bitdefender "The Darkest Minds Promotion" mit kostenlosem Gewinnspiel und Angebot Total Security 2019 MultiDevice nur 39,99€ statt 79,99 Euro (50% Rabatt)
» Bitdefender Sommer-Aktion Version 2019 mit 15 Euro Rabatt auf Bitdefender Antivirus Plus 2019 (3 Geräte und 1 Jahr), 30 Euro Rabatt auf Bitdefender Internet Security 2019 (3 Geräte und 1 Jahr) und 40 Euro Rabatt auf Bitdefender Total Security Multi Device 2019 (5 Geräte und 1 Jahr)
» Bitdefender +1 Jahr dazu-Aktion
» Top für neue PCs! Bitdefender AntiVirus Plus Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95
Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Werbung
Bitdefender: 50% Rabatt auf die neue Total Security 2019

Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.