PHP PHP mail multipart/alternative

lordg2009

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.503
Hi,

Ich sende von meiner website HTML Mails. Das klappt auch alles soweit. GMX und web.de können diese HTML Mails leider nur in reiner Textform darstellen. Um Probleme zu vermeiden habe ich jetzt eine Mail mit multipart/alternative entworfen, die ein Text und ein HTML Segment enthält. Das funktioniert für mein gmail Konto sehr gut (stellt HTML Mails dar) GMX und web.de stellen aber wieder den ganzen Text dar, anstatt nur das text/plain Segment darzustellen. Was mache ich da falsch?

PHP:
function adb_mail($to, $regarding, $content_text, $content_html) {
		
// Text Teil
$mail_body = "
--==MULTIPART_BOUNDARY
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
" . $content_text;

// HTML Teil
$mail_body .= "
--==MULTIPART_BOUNDARY
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: base64
<html>
<head>
<title>Titel</title>
<style type=\"text/css\">
<!--
* {
	font-family: verdana,helvetica,arial,sans-serif;
}
h1 {
	padding-left: 20px;
	display: block;
	font-weight: bold;
	color: #333;
}
h1 span {
	font-size: 1.5em;
	color: #8AC007;
}
-->
</style>
</head>
<body>
<h1>
	Über<span>S</span> chrift
</h1>
<div style=\"margin: 5px 0; padding: 1em 2em; border-top: 1px solid grey; border-bottom: 1px solid grey; background: #eee; font-weight: bold;\">
	<span>" . $regarding . "</span>
</div>
<div style=\"padding: 10px 20px;\">
" . $content_html . "
</div></body></html>
--==MULTIPART_BOUNDARY--";
		
		$mail_body = wordwrap($mail_body, 70);
		
		$header  = 'MIME-Version: 1.0' . "\r\n";
		$header .= 'Content-Type: multipart/alternative; boundary="==MULTIPART_BOUNDARY"' . "\r\n";
		$header .= 'From: Mail <hier_steht_meine_richtige@mail.de>' . "\r\n";
		$header .= 'hier_steht_meine_richtige@mail.de' . "\r\n";
		
		if(mail($to, $regarding, $mail_body, $header)) {
			return true;
		} else {
			return false;
		}
	}

Vielen Dank für eure Hilfe
 
Auf Gmail normal, auf gmx oder web.de hat sie folgenden Inhalt:

Code:
Content-Transfer-Encoding: quoted-printable



\nHi, Name,\n\n\n

Du hast dein Passwort, vergessen?\n\n

Klicke auf folgenden Link, um dein Passwort
zurückzusetzen:\n\n

LINK

--==MULTIPART_BOUNDARY

Content-Type: text/html; charset=iso-8859-1

Content-Transfer-Encoding: base64

<html>

<head>

<title>Titel</title>

<style type="text/css">

<!--

* {

font-family: verdana,helvetica,arial,sans-serif;

}

h1 {

padding-left: 20px;

display: block;

font-weight: bold;

color: #333;

}

h1 span {

font-size: 1.5em;

color: #8AC007;

}

-->

</style>

</head>

<body>

<h1>

Über<span>S</span>chrift

</h1>

<div style="margin: 5px 0; padding: 1em 2em; border-top: 1px solid
grey; border-bottom: 1px solid grey; background: #eee; font-weight:
bold;">

<span>Passwort zurücksetzen</span>

</div>

<div style="padding: 10px 20px;">



<br>Hi, Name,<br><br><br>

Du hast dein Passwort, vergessen?<br><br>

Klicke auf folgenden Link, um dein Passwort
zur&uuml;ckzusetzen:<br><br>

<a style="color: #8AC007"
href="LNIK">LNIK</a>

</div></body></html>
 
Kannst du mal bitte den Quelltext der Mail poste, also mit Header-Daten und allem.
 
Wie komme ich da ran?
Ergänzung ()

Habs bei google mail gefunden, hier die Originalnachricht:

Code:
Delivered-To: XXXXXXXXXXXXX
Received: by 10.194.59.115 with SMTP id y19csp709710wjq;
        Sun, 25 Jan 2015 06:56:08 -0800 (PST)
X-Received: by 10.194.108.202 with SMTP id hm10mr35506646wjb.72.1422197768199;
        Sun, 25 Jan 2015 06:56:08 -0800 (PST)
Return-Path: <XXXXXXXXXXXX@s10.tecspace.net>
Received: from s10.tecspace.net (s10.tecspace.net. [176.9.19.247])
        by mx.google.com with ESMTPS id w5si14523770wjr.60.2015.01.25.06.56.08
        for <XXXXXXXXXXXXXXXXX@gmail.com>
        (version=TLSv1 cipher=RC4-SHA bits=128/128);
        Sun, 25 Jan 2015 06:56:08 -0800 (PST)
Received-SPF: none (google.com: XXXXXXXXXXXXXXXXXX@s10.tecspace.net does not designate permitted sender hosts) client-ip=XXXXXXXXXXXXX;
Authentication-Results: mx.google.com;
       spf=none (google.com: XXXXXXXXXXXXXXX@s10.tecspace.net does not designate permitted sender hosts) smtp.mail=XXXXXXXXXXX@s10.tecspace.net
Received: by s10.tecspace.net (Postfix, from userid 107946)
	id CE8793C0E51; Sun, 25 Jan 2015 15:56:07 +0100 (CET)
X-Additional-Header: /home/www/XXXXXXXXXXX
To: ffgellrich@gmail.com
Subject: Einladung
Reply-To: XXXXXXXXXXXXX <XXXXXXXXXXXXX.de>
From: XXXXXXXXXXXXX <XXXXXXXXXXXXX.de>
Organization: XXXXXXXXXXXXX <XXXXXXXXXXXXX.de>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="==MULTIPART_BOUNDARY"
Message-Id: <20150125145607.CE8793C0E51@s10.tecspace.net>
Date: Sun, 25 Jan 2015 15:56:07 +0100 (CET)


--==MULTIPART_BOUNDARY
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

				\nHi,\n\n\n
				XXXXXXXXXXXXXXXXXXXXXXXXXXXX wurden.\n\n
				Klicke auf folgenden Link, um dich zu registrieren:\n\n
				XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
--==MULTIPART_BOUNDARY
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: base64
<html>
<head>
<title>Mail XXXXXXXXXXXXXXX</title>
<style type="text/css">
<!--
* {
	font-family: verdana,helvetica,arial,sans-serif;
}
h1 {
	padding-left: 20px;
	display: block;
	font-weight: bold;
	color: #333;
}
h1 span {
	font-size: 1.5em;
	color: #8AC007;
}
-->
</style>
</head>
<body>
<h1>
	XXXXXXXXXXXXXX<span>XXXXXXXXXXX</span>XXXXXXXXXXXX
</h1>
<div style="margin: 5px 0; padding: 1em 2em; border-top: 1px solid
grey; border-bottom: 1px solid grey; background: #eee; font-weight:
bold;">
	<span>Einladung</span>
</div>
<div style="padding: 10px 20px;">

				<br>Hi,<br><br><br>
				XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br><br>
				Klicke auf folgenden Link, um dich zu registrieren:<br><br>
				<a style="color: #8AC007"
href="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</a>
</div></body></html>
--==MULTIPART_BOUNDARY--
 
Auf die Schnelle sehe ich da jetzt keine Problem, scheint eigentlich alles richtig.
 
Sowohl web.de, als auch gmx stellen ab der Zeile 31: "Content-Transfer-Encoding: quoted-printable" (inklusive Zeile 31) alles weitere folgende in reiner Textform dar.
Ergänzung ()

Ich habe jetzt mal eine amazon Mail angeschaut. Die wir bei gmx richtig dargestellt. Eigentlich nutze ich aber die gleichen Header wie die, kann es sein, dass manche Mail Provider nur HTML Mails von bekannten Domains darstellen.
 
Zurück
Oben