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 & Infos:

Acer Weihnachtsangebote

Acer Swift Go 14Acer Weihnachtsangebote hier im deutschen ACER Store – mit echten Knaller – Angeboten, zum Beispiel sehr viele Acer Swift Go Notebooks im Angebot mit einem sehr gut ausgestatteten Swift Go mit Top Display und viel Ausstattung unter 700 Euro.



WebSite X5WebSite X5 Winterangebot mit 35% Rabatt

Professionelle Homepages ohne Programmierung erstellen mit WebSite X5 und dabei bis Ende Januar 35% sparen:

WebSite X5 Evo jetzt bereits für 58,46 Euro statt 89,95 Euro mit dem Gutscheincode SOFTWAREWINTER

WebSite X5 Pro jetzt bereits für 129,96 Euro statt 199,95 Euro mit dem Gutscheincode SOFTWAREWINTER

In den Links sind die 35% Rabatt bereits berücksichtigt!



Verwandte Themen: