HTML E-Mail mit kleinem Fehler

Radhad

Erfahrenes Mitglied
Hallo zusammen,

ich hab nen kleines Problem mit meinem HTML E-Mail Script - der Text wird nicht als HTML angezeigt - allerdings seh ich keinen :(
Der Quelltext
PHP:
<?php
// mehrere Empfänger
$empfaenger = $_GET["email"];

// Betreff
$betreff = 'Registrierung beim inoffiziellen netkicker.de Turnierplaner';

// Nachricht
$nachricht = '
<html>
<head>
  <title>Registrierung beim inoffiziellen netkicker.de Turnierplaner</title>
</head>
<body>
  <p>Registrierung beim inoffiziellen netkicker.de Turnierplaner</p>
  <p>Vielen Dank für deine Registirerung.</p>
  <p>Bitte nutze folgenden Link zur Aktivierung deines Accounts.<br />
  <a href="http://codegroup.de/netkicker/activate.php?key=1234">http://codegroup.de/netkicker/activate.php?key=1234</a></p>
</body>
</html>';

// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header = 'From: netkicker Turnierplaner <no-reply.netkicker@codegroup.de>' . "\r\n";
$header .= 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-Type: text/html; charset=iso-8859-1' . "\r\n";

// verschicke die E-Mail
mail($empfaenger, $betreff, $nachricht, $header);
header ("Location: http://www.codegroup.de/Privat/Radhad/netkicker");
?>
Die Ausagbe
Code:
Content-Type: text/html; charset=iso-8859-1

Message-Id: <20070418143048.44FFC4837@snow.tuxtools.net>
Date: Wed, 18 Apr 2007 16:30:48 +0200 (CEST)




<html>

<head>

 <title>Registrierung beim inoffiziellen netkicker.de Turnierplaner</title>

</head>

<body>

 <p>Registrierung beim inoffiziellen netkicker.de Turnierplaner</p>

 <p>Vielen Dank für deine Registirerung.</p>

 <p>Bitte nutze folgenden Link zur Aktivierung deines Accounts.<br />

 <a href="http://codegroup.de/netkicker/activate.php?key=1234">http://codegroup.de/netkicker/activate.php?key=1234</a></p>

</body>

</html>
Ich habe das Beispiel aus dem PHP Manual angepasst :/


Gruß Radhad
 
So ich bin mit nicht 100%ig sicher aberstelle mal folgendes so um:
PHP:
$header = 'MIME-Version: 1.0' . "\r\n"; 
$header .= 'Content-Type: text/html; charset=iso-8859-1' . "\r\n"; 
$header. = 'From: netkicker Turnierplaner <no-reply.netkicker@codegroup.de>' . "\r\n";
Es könnte an der Reihenfolge liegen. Das eMail-Programm muss es ja irgendwie interpretieren.
 
klappt immer nich nicht. Hier der aktuelle Quellcode:
PHP:
<?php
// mehrere Empfänger
$empfaenger = '"'.$_GET["email"].'"';

// Betreff
$betreff = 'Registrierung beim inoffiziellen netkicker.de Turnierplaner';

// Nachricht
$nachricht = '<html>
<head>
  <title>Registrierung beim inoffiziellen netkicker.de Turnierplaner</title>
</head>
<body>
  <p>Registrierung beim inoffiziellen netkicker.de Turnierplaner</p>
  <p>Vielen Dank für deine Registirerung.</p>
  <p>Bitte nutze folgenden Link zur Aktivierung deines Accounts.<br />
  <a href="http://codegroup.de/netkicker/activate.php?key=1234">http://codegroup.de/netkicker/activate.php?key=1234</a></p>
</body>
</html>';

// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header = 'From: netkicker Turnierplaner <no-reply.netkicker@codegroup.de>' . '\r\n';
$header .= 'MIME-Version: 1.0' . '\r\n'; 
$header .= 'Content-Type: text/html; charset=iso-8859-1' . '\r\n'; 

// verschicke die E-Mail
mail($empfaenger, $betreff, $nachricht, $header);
header ("Location: http://www.codegroup.de/Privat/Radhad/netkicker");
?>
 
Wie sähe denn ein funktionierendes Script aus? Hab zuletzt vor 2 Jahren nen HTML-Mailer geschrieben, der hatte noch nen sogenannten Boundary, finde aber auf meiner Platte nichts mehr dazu...

EDIT:
Hab meinen eigenen Post mit dem Boundary gefunden, bringt aber nichts... Jetzt zeigt er das HTML im Klartext an. Muss ich evtl. alles einhalten wie bei einer HTML-Seite? Könnte man dann auch XHTML nehmen? Hinzugefügt hab ich noch den Content-Transfer-Encoding mit 8bit.
 
Zuletzt bearbeitet:
Hallo,

also ich hatte bis jetzt nie Probleme damit. Habe mich immer an folgendes gehalten (Quelle: http://www.php-faq.de/q/q-mail-html.html)

Code:
$message = "<h1>Hello world!<h1>";
$to      = "empfaenger@system.de";
$subject = "Betrefftext";
$xtra    = "From: ab@sender.de (Ab Sender)\r\n";
$xtra   .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
$xtra   .= "X-Mailer: PHP ". phpversion();

mail($to,
     $subject,
     $message,
     $xtra);


Kannst es ja mal versuchen. Mußt natürlich Deine Daten austauschen.
 
Also irgendwas stimmt weiterhin mit dem Header nicht :/ Ich habe jetzt zumindest den "From:" Teil richtig. Hier nochmal die Ausgabe der E-Mail:
Code:
Content-Transfer-Encoding: 8bit X-Mailer: PHP 5.2.1-tuxtools Message-Id: <20070420123125.B612A482C@snow.tuxtools.net> Date: Fri, 20 Apr 2007 14:31:25 +0200 (CEST)

Registrierung beim inoffiziellen netkicker.de Turnierplaner

Vielen Dank für deine Registirerung.

Bitte nutze folgenden Link zur Aktivierung deines Accounts.
http://codegroup.de/netkicker/activate.php?key=1234
Wie man sieht wird die erste Zeile nicht korrekt umgesetzt.
Hier der Quellcode:
PHP:
<?php
// mehrere Empfänger
$empfaenger = '"'.$_GET["email"].'"';

// Betreff
$betreff = 'Registrierung beim inoffiziellen netkicker.de Turnierplaner';

// Nachricht
$nachricht = '<html>
<head>
  <title>Registrierung beim inoffiziellen netkicker.de Turnierplaner</title>
</head>
<body>
  <p>Registrierung beim inoffiziellen netkicker.de Turnierplaner</p>
  <p>Vielen Dank für deine Registirerung.</p>
  <p>Bitte nutze folgenden Link zur Aktivierung deines Accounts.<br />
  <a href="http://codegroup.de/netkicker/activate.php?key=1234">http://codegroup.de/netkicker/activate.php?key=1234</a></p>
</body>
</html>';

// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header = "From: \"netkicker Turnierplaner\" <no-reply.netkicker@codegroup.de> \r\n";
$header .= "Content-Type: text/html; charset=iso-8859-1 \r\n";
$header .= "Content-Transfer-Encoding: 8bit \r\n";
$header .= "X-Mailer: PHP ". phpversion();

// verschicke die E-Mail
mail($empfaenger, $betreff, $nachricht, $header);
header ("Location: http://www.codegroup.de/Privat/Radhad/netkicker");
?>
Vielleicht weiß ja jetzt jemand eine Lösung :)
Falls jemand den Link zum Formular haben möchte kann mir ja eine PN schreiben. Vielleicht hilft das ja.


Gruß Radhad

[EDIT]
Also Outlook & Web.de gehen jetzt ohne Fehler, GMAIL noch nicht ganz.
Leider hängt sich was an die "To" - Adresse: @snow.tuxtools.net, was vom Mailserver kommt. Wie kann ich das unterbinden?
 
Zuletzt bearbeitet:
Hallo Radhad

Ersetze mal
PHP:
$empfaenger = '"'.$_GET["email"].'"';
mit
PHP:
$empfaenger = $_GET["email"];

So hats bei mir problemlos funktioniert auf eine Gmailadresse.

Die vielen " und ' brauchst du nicht, da du mit $_GET["email"] schon einen String bekommst.

Gruss Rambomaster
 
Zurück