Tabellen in html Email funktionieren nur zum Teil

splat

Erfahrenes Mitglied
Hi,

ich versuche hier eine html email mit php zu versenden, was auch soweit ganz gut klappt... jedoch sehen die Tabellen nicht so aus wie sie sollten. Ich sehe in der Email zwar die Tabelle zentriert und auch in der richtigen Farbe, nur ist die Tabelle keine 700 pixel breit, sondern nur so breit wie der text "test".
Sieht hier irgendjemand einen Fehler?

PHP:
$text = "
<html>
<body>
<table width='700' border='0' align='center' bgcolor='#FFCC66'>
	<tr>
		<td width='700' align='center'><font face='arial' size='4'>test</font></td>
	</tr>
</table>
</body>
</html>";

$sender = "xxxxx";
$betreff = "xxxxx";
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\r\n";
$headers .= "From: $sender <$sender>\r\n"; 

mail($recipients, $betreff, $text, $headers);


Gruß,
Marc
 
Wird der E-Mail-Körper überhaupt „Quoted-printable“ kodiert? Denn falls nicht – wovon ich jetzt auch aufgrund des Codes ausgehe – könnten bei der Dekodierung eben Daten verloren gehen und anschließend fehlinterpretiert werden, da die Daten eben nicht die beschriebenen Eigenschaften haben.
 
Hallo!
.....nur ist die Tabelle keine 700 pixel breit, sondern nur so breit wie der text "test".....
Kann ich nicht bestätigen..... im IE, in OE und auch Mozilla wird die korrekte Breite angezeigt.
Allerdings ist es kein valider Quelltext.
So fehlt der <head>-Tag nebst <meta>-Tags.
Ich bin der Meinung dass auch der <title>-Tag pflicht ist.
Ausserdem fehlt noch die Angabe des Doctypes.

Versuche es mal so:
PHP:
$text = " 
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'
    'http://www.w3.org/TR/html4/loose.dtd'>
<html> 
<head>
    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
    <meta http-equiv='Language' content='de'>
    <title>Newsletter</title>
</head>
<body> 
<table width='700' border='0' align='center' bgcolor='#FFCC66'> 
    <tr> 
        <td width='700' align='center'><font face='arial' size='4'>test</font></td> 
    </tr> 
</table> 
</body> 
</html>";
Gruss Dr Dau
 
So fehlt der <head>-Tag nebst <meta>-Tags.
Das meta-Tag ist überflüssig, da diese Information bereits im E-Mail-Header steht.

Des weiteren kann ich mir vorstellen, dass das HTML etwa so zerhackt ankommen könnte:
HTML:
<table width00' border' alignenter' bgcolorFFCC66'> 
    <tr> 
        <td width00' alignenter'><font facerial' size'>test</font></td> 
    </tr> 
</table>
 
Ich habe gerade mal den quoted-printable teil im header weggelassen, und es funktioniert.
Habe das vorher mal benötigt, um in der Betreffzeile Umlaute anzeigen zu können. Das brauche ich nun aber nicht mehr... also kann ich es ja auch weglassen, oder?

das ganze sieht jetzt so aus:
PHP:
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $sender <$sender>\r\n";

Sonst noch irgendwelche Verbesserungen/Vorschläge für eine html email?

Ich markiere den Thread schonmal als gelößt... vielen Dank für die Hilfe!! :)
 
Zurück