AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments
Thema durchsuchen
Ansicht
Themen-Optionen

Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments

Ein Thema von stalkingwolf · begonnen am 6. Jul 2023 · letzter Beitrag vom 7. Jul 2023
Antwort Antwort
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#1

Emailaufbau TidMessage.MessageParts HTML Mail mit CID und Attachments

  Alt 6. Jul 2023, 11:23
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?
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#2

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

  Alt 6. Jul 2023, 13:08
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 6. Jul 2023, 13:14
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.
$2B or not $2B

Geändert von himitsu ( 6. Jul 2023 um 13:18 Uhr)
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#4

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

  Alt 6. Jul 2023, 13:40
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

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.

Geändert von stalkingwolf ( 6. Jul 2023 um 13:47 Uhr)
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#5

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

  Alt 7. Jul 2023, 14:21
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 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