Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments (https://www.delphipraxis.net/213306-emailaufbau-tidmessage-messageparts-html-mail-mit-cid-und-attachments.html)

stalkingwolf 6. Jul 2023 10:23

Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments
 
Moin,

ich mache scheinbar etwas grundlegendes falsch beim Aufbau meiner Emails wenn ich diese versendet.

Folgendesszenario
- HTML Email mit CID Bildern und Anhängen.

iPhone Mail will hier multipart/mixed; Sonst kann ich keine Anhänge anzeigen.
Thunderbird will multipart/related; Sonst werden die CID Bilder nicht inline angezeigt, sondern als Platzhalter und unten sieht man das Bild.

Ich habe mir dann eine Email in Thunderbird nachgebaut und versendet. Dabei ist mir aufgefallen das Thunderbird ganz oben im Header
Code:
Content-Type: multipart/mixed; boundary="------------7mmY5YzMgTHB1ZEECPMD94EN"
stehen hat.
Und vor einem Messagepart z.b HTML

Code:
--------------EVKwMoHl0nYqcPMo2Li8IakI
Content-Type: multipart/related;
 boundary="------------CVmH5NEb3RqzrsOJeceIR0pR"

--------------CVmH5NEb3RqzrsOJeceIR0pR
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
Wenn ich meine Email aufbaue fehlt mir der 2te Block und genau dadurch entsteht das Problem was ich oben beschreibe.
Ich mir mir fast sicher das ich die messageparts von TidMessage falsch aufbaue und daher das Problem habe.

Hat hier jemand ein Beispiel zur Hand oder eine Doku wie das genau aufzubauen wäre?

stalkingwolf 6. Jul 2023 12:08

AW: Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments
 
Ok ich habe es wohl selber gefunden.
Ich hatte nirgendwo ParentPart gesetzt.

Ich habe über diesen https://community.embarcadero.com/ar...to-send-emails
und https://stackoverflow.com/questions/...mail-correctly
herausgefunden.

himitsu 6. Jul 2023 12:14

AW: Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments
 
Wie wäre es, wenn du die Bilder nicht anhängst, sondern einfügst?

https://wiki.selfhtml.org/wiki/Grafi...n_mit_Data-URI
https://stackoverflow.com/questions/...images-in-html
https://www.base64-image.de/tutorial
...




Oder es mischst? Also multipart/related und multipart/mixed.

Zuerst die HTML mit den Bildern als multipart/related
und das dann als "einen Part", zusammen mit den Anhängen, in ein multipart/mixed rein.

stalkingwolf 6. Jul 2023 12:40

AW: Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments
 
Zitat:

Zitat von himitsu (Beitrag 1524256)
Wie wäre es, wenn du die Bilder nicht anhängst, sondern einfügst?

Outlook spielt dort nicht mit. In all meinen Test hat Outlook, als einziges Programm, es nicht angezeigt.
Daher mache ich das mit CID

Zitat:

Zitat von himitsu (Beitrag 1524256)
Oder es mischst? Also multipart/related und multipart/mixed.

Zuerst die HTML mit den Bildern als multipart/related
und das dann als "einen Part", zusammen mit den Anhängen, in ein multipart/mixed rein.

So habe ich es. Aber mein Problem war das ich nur einen ContentTyp ganz oben in der Email hatte, weil ich in den unteren vergessen hatte die
ParentPart zu setzen.

Code:
            IdMessage1.ContentType := "multipart/mixed;";
            IdMessage1.CharSet     := 'iso-8859-1';
            idmessage1.ContentTransferEncoding := '8bit';
            idmessage1.Headers.AddValue('Content-Language','de');

            idText2 := TIdText.Create(idmessage1.MessageParts);
            idText2.ContentType     := 'multipart/related; type="multipart/alternative"';

            idText := TIdText.Create(idmessage1.MessageParts);
            idText.ContentType     := 'text/html';
            idtext.CharSet         := 'iso-8859-1';
            idtext.Headers.AddValue('Content-Language','de');
            idtext.ContentTransfer := '8bit';
            idText.Body.Text       := body;
            idtext.ParentPart      := idtext2.Index; // Das war wichtig
Auszug aus der Doku von embarcadero
Zitat:

Once again, this situation is very unstable and requires unique tuning in every situation. Latest version of 9.x and new 10.x fixed and simplify some of these issues, but programmer still need to pay attention and experiment with parts and their sequence to make it work correctly. In version 10 please refer to a ParentPart property which also allow to handle some of the issues with complex e-mails.

stalkingwolf 7. Jul 2023 13:21

AW: Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments
 
Zitat:

Zitat von himitsu (Beitrag 1524256)
Wie wäre es, wenn du die Bilder nicht anhängst, sondern einfügst?

Hab dazu noch mal gerade diverse Test gemacht.
- Outlook Web = wird angezeigt
- Outlook APP (Windows) = wird angezeigt
- Outlook Office Home and Business 2021 Version 2306 = wird NICHT angezeigt.

immerhin scheint Microsoft es in die neuen Version endlich implementiert zu haben.
So schleppend wie viele allerdings Software aktualisieren ( wir haben noch Kunden die Windows XP haben und dort laufen Delphi 11 Programm nicht. Die zwingen wir gerade zum Upgraden ), würde ich darauf nicht gehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz