Hallo
Ich versuche momentan, über unsere App eine E-Mail über den David3-Client zu schicken. Dazu habe ich die DvApi32. Normale E-Mails funktionieren gut, aber ich kann keine Inline-Bilder mit der E-Mail versenden, da sie dann teilweise nicht angezeigt werden.
Wenn ich Inline Bilder über ContentID mit einem Anhang verlinke, dann funktioniert das nicht. Das HTML sieht so aus.
HTML
<!DOCTYPE html><html><head></head><body><div style="font-size:12pt;font-family:"Microsoft Sans Serif";"><p style="font-size:8,5pt;margin:0;"><img width="128" height="128" alt="image0" src="cid:image0"></p></div></body></html>
Wenn ich das Bild als Base64 in das HTML einbette, dann funktioniert das zwar für David3 und Thunderbird, aber Outlook zum Beispiel hat seine Probleme mit diesen eingebetteten Bildern
HTML
<!DOCTYPE html><html><head></head><body><div style="font-size:12pt;font-family:"Microsoft Sans Serif";"><p style="font-size:8,5pt;margin:0;"><img width="128" height="128" src="data:image/jpg;base64,[...]></p></div></body></html>
Ich versuche es momentan so hier
C#
MailItem mailItem = (MailItem)oArchive.NewItem(DvItemTypes.DvEMailItem);
mailItem.Subject = this.Subject;
AddAdressesTo(this.Recipients, mailItem.Recipients);
AddAdressesTo(this.CC, mailItem.CC);
AddAdressesTo(this.BCC, mailItem.BCC);
// bereite Mailbody vor
string rtfText = $"<!DOCTYPE html><html><head></head><body>{Rtf.ToHtml(this.Content)}</body></html>";
// fügt Bilder den Attachments hinzu und ersetzt Base64 Bild durch ContentID
ExtractEmbeddedImages(ref rtfText);
// Anhänge
foreach (string file in Attachments)
{
Attachment attachment = mailItem.Attachments.Add(file);
//attachment.Flags = 8;
}
mailItem.BodyText.HTMLText = rtfText;
mailItem.Options.UserHold = false;
mailItem.Options.Priority = DvMessagePriority.DvMsgPriorityNormal;
mailItem.Send();
Alles anzeigen
Dieses "attachment.Flags" hat laut Doku für den Wert 8 "Inline HTML image" stehen, aber das funktioniert leider auch nicht. Irgendwelche Ideen?