Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an (https://www.delphipraxis.net/182188-html-mail-kommen-bei-outlook-empfaengern-nicht-korrekt.html)

pesi 8. Okt 2014 09:07

HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Hallo,

ich versende HTML-Mails (inkl. Bilder und Text) direkt aus meinem Programm heraus.
Bei einigen Empfängern, die mit Outlook arbeiten, kommt aber leider die Mail in einem ziemlich
desolaten Zustand an, nämlich eine mehr oder minder leere Mail mit Anhängen für die Bilder
und einem HTML-Anhang der die eigentliche Mail enthält.

Der Admin dort hat schon einiges an dem neuen Server versucht, ist aber bisher wohl nicht so recht
weitergekommen.

Gibt es etwas, was ich an meinen Mails ändern könnte um den Fehler bei diesen Empfängern zu vermeiden???

Meine HTML-Mail geht so los:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=unicode" />
<title>Helpdesk Information</title>

und hier noch ein paar Zeilen Code vom versenden der Mail aus meinem Programm:

email1.Subject := Titel+Trim(Form1.ed_Title.Text);
email1.ContentType := 'multipart/mixed';
email1.Body.Assign(html1);

txtpart := TIdText.Create(email1.MessageParts);
txtpart.ContentType := 'text/plain';
txtpart.Body.Text := '';

htmpart := TIdText.Create(email1.MessageParts, html1);
htmpart.ContentType := 'text/html';

Header:=TIdAttachmentFile.Create(email1.MessagePar ts,Home+Bild);
Header.ContentType := 'image/jpeg';
Header.ContentDisposition := 'inline';
Header.ExtraHeaders.Values['content-id'] := Bild;
Header.DisplayName := Bild;


Wäre super, wenn ich was ändern könnte. Der Admin am Outlook-Server scheint im Moment etwas überfordert :shock:

Danke & Grüße
Peter

mjustin 8. Okt 2014 09:13

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Ist es die allerneueste Indy 10.6 Version?

Und wenn ich richtig sehe, dass ausserdem noch ein JPG-Bild angehängt wird: funktioniert es nur mit Bild nicht, oder auch ohne Bild nicht?

Harry Stahl 8. Okt 2014 21:58

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Ich nehme mal an, dass hier Dein "multipart/mixed" der Grund ist. "multipart/mixed" gibt dem Mailprogramm an, dass es sich bei den Informationen um unterschiedliche Inhalte handelt, die einzeln anzuzeigen sind.

Wenn Du "multipart/alternative" nimmst, sollte die Mail als HTML-Mail richtig angezeigt werden. Eigentlich wäre es hierfür dann aber korrekt, auch einen alternativen ANSI-Text in den "text/plain" part zu setzten, da ansonsten das eine oder andere Mailprogramm den Text (eigentlich richtig) in der "reinen Textansicht" als leeren Text wiedergibt. Da der plain text bei Dir keinen Inhalt hat, kannst Du den eigentlich auch weglassen und die Mail direkt mit dem Content-Type "text/html" versenden.

Da es für mich als Entwickler eines Mailprogramms es ja fast schon ein "Hobby" ist, sich mit diversen Mailkonstruktionen auseinanderzusetzen, kannst Du mir bei Bedarf auch gerne mal so eine Mail zusenden (an meine Hastasoft-Kontaktadresse, siehe Homepage), ich sage Dir dann, wie sie ankommt und was mein Programm daraus gemacht hat.:wink:

Sir Rufo 8. Okt 2014 22:45

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
OT

So hübsch die bunten Farben auch sind, warum benutzt du keine Code-Tags?
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=unicode" />
  <title>Helpdesk Information</title>
Delphi-Quellcode:
 email1.Subject := Titel+Trim(Form1.ed_Title.Text);
 email1.ContentType := 'multipart/mixed';
 email1.Body.Assign(html1);

 txtpart := TIdText.Create(email1.MessageParts);
 txtpart.ContentType := 'text/plain';
 txtpart.Body.Text := '';

 htmpart := TIdText.Create(email1.MessageParts, html1);
 htmpart.ContentType := 'text/html';

 Header:=TIdAttachmentFile.Create(email1.MessageParts,Home+Bild);
 Header.ContentType := 'image/jpeg';
 Header.ContentDisposition := 'inline';
 Header.ExtraHeaders.Values['content-id'] := Bild;
 Header.DisplayName := Bild;

pesi 9. Okt 2014 08:34

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Hallo

@mjustin: Kein Indi, nur die "normale" SMTP Mailfunktion in XE5

@Harry: Danke, hab jetzt schon mal ein bißchen mit diesen Einstellungen rumgespielt und noch ein wenig gegoogelt, bin aber nicht wirklich erfolgreich gewesen bisher. Wenn ich auf alternative stelle, dann werdem beim Empfänger nur noch wilde Zeichen angezeigt (egal ob ich einen Plain-Text angebe oder den Teil einfach weglasse)

@Sir Rufo: MIST..... ich hatte es gestern noch gesucht (weil ich genau wusste, dass so ein Kommentar kommt :oops:) und, wie ich jetzt gesehen habe, wohl einfach Tomaten auf den Augen gehabt. JETZT hab ich die Button auch gesehen :cyclops:

Sherlock 9. Okt 2014 08:46

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Delphi-Quellcode:
 txtpart := TIdText.Create(email1.MessageParts);
 txtpart.ContentType := 'text/plain';
 txtpart.Body.Text := '';
Das dürfte zumindest den leeren Textanteil auf Empfängerseite erklären...
Du solltest immer sowohl HTML als auch Plaintext füllen, auch wenn es mehr Arbeit ist. HTML-Mails haben nunmal ein "Geschmäckle" unter Windows in Outlook auch zu Recht - man denke nur an die garstigen Möglichkeiten allein schon in der Vorschau.

Sherlock

mjustin 9. Okt 2014 10:14

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Zitat:

Zitat von pesi (Beitrag 1275349)

@mjustin: Kein Indi, nur die "normale" SMTP Mailfunktion in XE5


TIdAttachmentFile sind TIdText sind Klassen der Internet Direct (Indy) Open Source Bibliothek (und in Delphi enthalten).
Daher mein Hinweis auf ein eventuell helfendes Update der Indys...

Olli73 9. Okt 2014 15:05

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Zitat:

Zitat von pesi (Beitrag 1275349)
Hallo
Wenn ich auf alternative stelle, dann werdem beim Empfänger nur noch wilde Zeichen angezeigt (egal ob ich einen Plain-Text angebe oder den Teil einfach weglasse)

Du hast doch (mindestens) 3 Teile (text, html, jpeg), wobei text und html alternativ angezeigt werden sollen?

Dann benötigst du eine Kombination aus mixed und alternative.

Gruß
Olli

pesi 9. Okt 2014 18:11

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
@Olli: Was meinst Du mit "Dann benötigst du eine Kombination aus mixed und alternative"???

Ich kann doch nur email1.ContentType := 'multipart/mixed'; ODER email1.ContentType := 'multipart/alternative'; angeben, oder habe ich da was falsch verstanden? :oops:


Mittlerweile habe ich von anderen Outlook Mailempfänger erfahren, dass bei denen die Mail auch leer bzw. HTML und Bilder als Anhänge ankommen. ...und diese Empfänger haben nicht die Outlook-Weboberfläche sondern ein "richtiges" Outlook!
Das Elend muss doch irgendwie bei denen liegen, am Client oder am Exchange-Server! Selbst mein Windows Live Mail zeigt es richtig an und direkt im Web, bei GMX, wird alles korrekt angezeigt. :evil::evil::evil:

Olli73 9. Okt 2014 20:00

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Zitat:

Zitat von pesi (Beitrag 1275458)
@Olli: Was meinst Du mit "Dann benötigst du eine Kombination aus mixed und alternative"???

Ich kann doch nur email1.ContentType := 'multipart/mixed'; ODER email1.ContentType := 'multipart/alternative'; angeben, oder habe ich da was falsch verstanden? :oops:

Die MessageParts (TidText etc.) haben ja auch einen ContentType, im Prinzip brauchst du eine Art Baumstruktur, siehe hier.

Gruß
Olli

Harry Stahl 9. Okt 2014 22:05

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Was ich noch vergessen habe zu erwähnen, ist, dass Du im Header der Mail den Content-Type als "multipart/related" angeben musst.

Dann kommt nach dem Header das "multipart/alternative" mit Deinem plain-Text, dem html-text und den Bild-Dateien, dann sollte es funktionieren.

Habe also gerade mal testweise eine HTML-Mail mit integriertem Bild an mich selber gesendet und diese einmal mit Safer Mail und ein andermal mit Outlook empfangen, beide Programm zeigen die Mail erwartungsgemäß als HTML-Mail mit integriertem Bild an.

Hier mal als Orientierung ein Auszug aus der EMPFANGENEN Mail, wie das beim Empfänger aussehen sollte, was Du versendest:

Code:
Return-Path: <info@hastasoft.de>
Received: from mailin51.aul.t-online.de ([172.20.27.0])
   by ehead311.aul.t-online.de (Dovecot) with LMTP id ZH8cLZ/wNlRPcQAAEswSrg;
   Thu, 09 Oct 2014 22:39:50 +0200
Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.218]) by mailin51.aul.t-online.de
   with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted - FP-SHA1:DC:11:97:B1:F6:37:0C:7C:09:A9:9C:E4:7D:13:F7:F9:81:08:F7:49)
   esmtp id 1XcKQ8-1mFVjs0; Thu, 9 Oct 2014 22:34:44 +0200
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1412886884; l=43802;
   s=domk; d=hastasoft.de;
   h=Content-Type:MIME-Version:Date:To:Subject:From;
   bh=kWnVUMFUlEQ5QLc6r9lPzdWnxZY=;
   b=v4TeD0DLMWnTEhcoCoRGmg4KDXkTj7XR+NmmSAdpPf3cuJ+yjdEXkqamLfj6DgHIQmr
   0RIrePbXySRLX1wJo/TU6lnI+jkpRMXTv3tSLnHs65T/HrbVbXZyujFA8eRqRFHG1SSMA
   srUmbiIRBFF18iEszdWH4eqKoGSMxZkz0Ac=
X-RZG-AUTH: :JWICemCgeuygPNAbdtGf3IGHB56ii1qJEtWHGAjGVNbDsLt5lyCX8TIXVd0=
Message-ID: <N0461cq99KYiWEc.RZmta@mo4-p00-ob.smtp.rzone.de>
X-RZG-CLASS-ID: mo00
Received: from Vertrieb (p5DE8C0E8.dip0.t-ipconnect.de [93.232.192.232])
   by smtp.strato.de (RZmta 35.10 DYNA|AUTH)
   with ESMTPSA id N0461cq99KYiWEc
   (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
   (Client did not present a certificate)
   for <harry.stahl@t-online.de>;
   Thu, 9 Oct 2014 22:34:44 +0200 (CEST)
Received: from Vertrieb[127.0.0.1] (helo=) by Vertrieb[127.0.0.1] with esmtp (Emil SMTP Server)
From: "Hastasoft Kontakt" <info@hastasoft.de>
Subject: Eine Testmail
To: harry.stahl@t-online.de
Date: Thu, 9 Oct 2014 22:35:03 +0200
MIME-Version: 1.0
Content-Type: multipart/related; boundary="fiR62JETL4=_hkQNPYgNADejHMWWLq89aP"
X-Mailer: Hastasoft Safer Mail 7.0-B233 [EE]
X-TOI-SPAM: n;1;2014-10-09T20:39:50Z
X-TOI-VIRUSSCAN: clean
X-TOI-EXPURGATEID: 149288::1412886884-000014B7-BA2EE0E2/0-0/0-0
X-TOI-SPAMCLASS: CLEAN, NORMAL
X-TOI-MSGID: 17364fe3-f7d7-4aae-a9ac-ddabd8a18728
X-Seen: false
X-ENVELOPE-TO: <harry.stahl@t-online.de>

This is a multi-part message in MIME format.


--fiR62JETL4=_hkQNPYgNADejHMWWLq89aP
Content-Type: multipart/alternative;
        boundary="w=_1FB5nccbxnP4sGT6KbJfaGXXq2uK0Yd"

--w=_1FB5nccbxnP4sGT6KbJfaGXXq2uK0Yd
Content-Type: text/plain ; charset="utf-8"
Content-Transfer-Encoding: base64

DQoNCkhhcnJ5IFN0YWhsIFNvZnR3YXJlDQorKysrKysrKysrKysrKysrKw0KVGVsOiAwMjI4LTkx
.... (entfernt)

--w=_1FB5nccbxnP4sGT6KbJfaGXXq2uK0Yd
Content-Type: text/html ; charset="utf-8"
Content-Transfer-Encoding: base64

PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
...(entfernt)

--w=_1FB5nccbxnP4sGT6KbJfaGXXq2uK0Yd--

--fiR62JETL4=_hkQNPYgNADejHMWWLq89aP
Content-Type: image/jpeg;
        name="image0.jpeg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
        filename="image0.jpeg"
Content-ID: <image0.jpeg>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK
...(entfernt)

--fiR62JETL4=_hkQNPYgNADejHMWWLq89aP--

Captnemo 10. Okt 2014 07:04

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Zitat:

Zitat von pesi (Beitrag 1275349)
Hallo
@mjustin: Kein Indi, nur die "normale" SMTP Mailfunktion in XE5

Wie, bringt XE5 eigene SMTP-Komponenten mit? Was ist den eine normale SMTP Mailfunktion? Gibt's die in XE4 auch?

pesi 10. Okt 2014 07:23

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Nein Captnemo, mein Fehler! :oops:
Es ist natürlich Indy!!! :-/

Captnemo 10. Okt 2014 08:54

AW: HTML-Mail kommen bei Outlook-Empfängern nicht korrekt an
 
Zitat:

Zitat von pesi (Beitrag 1275502)
Nein Captnemo, mein Fehler! :oops:
Es ist natürlich Indy!!! :-/

Gott-sie-Dank :-D Ich dachte schon ...:lol::lol::lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 Uhr.

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