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 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:
» Neue Aktion: Bitdefender 39 Euro Flat mit 5 Geräten
» Bitdefender +1 Jahr dazu-Aktion
» „Sicher durch den Sommer“ - Bitdefender Jahres Lizenz mit bis zu 36% Rabatt kaufen, inklusive VPN Basis-Paket.
» Top für neue PCs! Bitdefender Internet Security 2018 PC Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95
Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Werbung

Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.