susi: HTML-EMAILS und outlook

hallo,

habe nun bereits 10-20 sktipts aus dem web gezogen und getestet nur ..
outlook stellt jede übersendete mail nicht dar sondern gibt den quellcode bzw. die header aus!
was ist da los?

einer der codes:

function sendMail($adresse)
    {
        $this->headers = "From: XY@me.com\n";

//specify MIME version 1.0
        $this->headers .= "MIME-Version: 1.0\n";

//unique boundary
        $boundary = uniqid("HTMLDEMO");

//tell e-mail client this e-mail contains//alternate versions
        $this->headers .= "Content-Type: multipart/alternative" .
        "; boundary = $boundary\n\n";

//message to people with clients who don't
        //understand MIME
        $this->headers .= "This is a MIME encoded message.\n\n";

//plain text version of message
        $this->headers .= "--$boundary\n" .
        "Content-Type: text/plain; charset=ISO-8859-1\n" .
        "Content-Transfer-Encoding: base64\n\n";
        $this->headers .= chunk_split(base64_encode(strip_tags($this->content)));

//HTML version of message
        $this->headers .= "--$boundary\r\n" .
        "Content-Type: text/html; charset=ISO-8859-1\n" .
        "Content-Transfer-Encoding: base64\n\n";
        $this->headers .= chunk_split(base64_encode($this->layout));

//send message
        mail($adresse, "Flirtstar-Mail", "", $this->headers);
        echo $this->layout;
    }

und auch jener code von zend funktioniert nicht:
<?php
//add From: header
$headers = "From: webserver@localhost\r\n";

//specify MIME version 1.0
$headers .= "MIME-Version: 1.0\r\n";

//unique boundary
$boundary = uniqid("HTMLDEMO");

//tell e-mail client this e-mail contains//alternate versions
$headers .= "Content-Type: multipart/alternative" .
   "; boundary = $boundary\r\n\r\n";

//message to people with clients who don't
//understand MIME
$headers .= "This is a MIME encoded message.\r\n\r\n";

//plain text version of message
$headers .= "--$boundary\r\n" .
   "Content-Type: text/plain; charset=ISO-8859-1\r\n" .
   "Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode("This is the plain text version!"));

//HTML
version of message
$headers .= "--$boundary\r\n" .
   "Content-Type: text/html; charset=ISO-8859-1\r\n" .
   "Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode("This the <b>HTML</b> version!"));

//send
message
mail("root@localhost", "An HTML Message", "", $headers);
?>

immer werden nur die header zeilen ausgegeben! wo liegt der felher, oder ist es outlook?

ich kapier gar nichts mehr! hat wer ahnung davon!

lg, susi

  1. also falls es jemanden interessiert!
    es liegt an den "\r"! alle weg und es geht!

    <?php
    //add From: header
    $headers = "From: webserver@localhost\r\n";

    //specify MIME version 1.0
    $headers .= "MIME-Version: 1.0\r\n";

    //unique boundary
    $boundary = uniqid("HTMLDEMO");

    //tell e-mail client this e-mail contains//alternate versions
    $headers .= "Content-Type: multipart/alternative" .
       "; boundary = $boundary\r\n\r\n";

    //message to people with clients who don't
    //understand MIME
    $headers .= "This is a MIME encoded message.\r\n\r\n";

    //plain text version of message
    $headers .= "--$boundary\r\n" .
       "Content-Type: text/plain; charset=ISO-8859-1\r\n" .
       "Content-Transfer-Encoding: base64\r\n\r\n";
    $headers .= chunk_split(base64_encode("This is the plain text version!"));

    //HTML
    version of message
    $headers .= "--$boundary\r\n" .
       "Content-Type: text/html; charset=ISO-8859-1\r\n" .
       "Content-Transfer-Encoding: base64\r\n\r\n";
    $headers .= chunk_split(base64_encode("This the <b>HTML</b> version!"));

    //send
    message
    mail("root@localhost", "An HTML Message", "", $headers);
    ?>

    1. es liegt an den "\r"! alle weg und es geht!

      Laut dem SMTP-RFC (welche Nummer war das noch gleich...?) müssen die Headerzeilen aber alle mit \r\n abgetrennt werden.
      Ein einfaches \n reicht nicht aus. Zwar kommen die meisten MTAs damit klar, aber ich würde mich nicht darauf verlassen, daß es wirklich immer funktioniert.

      Oder meintest du irgendwo andere Zeilenendungen als die nach den Headern?

      Gruß, rob