steffen: Kleines Formatproblem mit mail()

Hallo Forumleser,

ich hab ein Problem, bei dem ich echt nicht mehr weiter weiß. Möchte gerne über mail() eine email verschicken. Nun brauch ich dafür natürlich Zeilenumbrüche. Möchte das ganze Möglichst schlicht halten. Laut php.net wird im Header \r\n und in der Message mit \n umgebrochen. Nun das ganze schaut in Web.de onlinekonto auch so aus, wie es sein soll, jedoch wenn ich es in den Lokalen Thunderbird runterlade, sind keine Zeilenumbrüche vorhanden. Aufgebaut habe ich es volgendermaßen:

  
$headers  =  "MIME-Version: 1.0\r\n";  
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";  
$headers .= "To: " . $_SESSION['email'] . "\r\n";  
$headers .= "From: Bestellemail von diestarke.de <shop@diestarke.de>\r\n";  
$headers .= "X-Mailer: PHP ". phpversion();  
  
$msg = "Eine neue Bestellung ist eingegangen!\n\n";  
$msg = "Hallo User,\n\nIhre Bestellung (#111) ist bei uns eingegangen!\n\n";  
  
mail($mail, "Ihre Bestellung #111 vom '.date("d.m.Y") , $msg, $headers);

Was mache ich falsch?

mfg Steffen

  1. Hallo,

    [...] Nun das ganze schaut in Web.de onlinekonto auch so aus, wie es sein soll

    naja, auch bei web.de sind sie nicht perfekt ...

    $headers  =  "MIME-Version: 1.0\r\n";

    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "To: " . $_SESSION['email'] . "\r\n";
    $headers .= "From: Bestellemail von diestarke.de shop@diestarke.de\r\n";
    $headers .= "X-Mailer: PHP ". phpversion();

    $msg = "Eine neue Bestellung ist eingegangen!\n\n";
    $msg = "Hallo User,\n\nIhre Bestellung (#111) ist bei uns eingegangen!\n\n";

    mail($mail, "Ihre Bestellung #111 vom '.date("d.m.Y") , $msg, $headers);

      
    
    > Was mache ich falsch?  
      
    Du erklärst dem Mailclient eingangs, deine Nachricht sei im HTML-Format. Betrachte ich die kurze Nachricht aber tatsächlich nach HTML-Kriterien, finde ich darin keinen Zeilenumbruch[\*]. Warum sollte der T-Bird also welche anzeigen?  
    Wenn die Webmail-Oberfläche von web.de Zeilenumbrüche darstellt, scheinen die Burschen den Content-Type zu ignorieren und selbst erraten zu wollen, in welchem Format die Nachricht vorliegt. Dann würden sie am ehesten auf text/plain kommen. Das würde ich dir übrigens auch empfehlen.  
      
    Ciao,  
     Martin  
      
      
    [\*] Wie werden Zeilenumbrüche in HTML doch gleich dargestellt ...?
    
    -- 
    Ist die Katze gesund,  
    freut sich der Hund.