HTML / Ascii Mail

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • HTML / Ascii Mail

    Hallo zusammen,

    juhu. Ich habe meinen ersten Newsletter versendet.
    Oh nooo, es gab Schwierigkeiten:

    Bei manchen wurde meine HTML Mail nicht richtig dargestellt.
    Zeilenumbrüche wurden mit <br> angegeben, teilweise war die mail gar nicht zu lesen.

    Wie kann diese Funktion optimieren? Gibt es eine Weiche, welche beim Abruf der Mail "prüft": wenn html fähig, dann html, sonst Ascii Mail?

    Anbei mein Script:

    PHP-Code:
    <?
     include("dbconnect.php");
      session_start();
      $res2 = 'Select * from tbl_email where gesendert <> "2005-06-14"';
      $sql2 = mysql_query($res2);
      $num = mysql_num_rows($sql2);
      
      
       echo mysql_error();
       for ($i=0; $i<$num; $i++)
       {
           $email=mysql_result ($sql2, $i, "Email");
           $title      = 'Contact Form';                     

        // Subject of the Mail | Der Betreff der Mail
        $subject= XY TITEL;

        // E-Mail Adress | Die E-Mail Adresse wo es hingehen soll
        $tomail= $email;

        // Datums Format (Beispiel: 03.10.2001 - 17:16:17)
        $date= date("m.d.Y - H:i:s");

        // Ip Adress of Sender | IP Adresse des versenders

        $ip= $REMOTE_ADDR;

        // überschriften der ankommenden Mails
        $txthead    = 'XY';    
        $htmlhead   = XY<a href=http://www.XY.de>XY.de</a>';

        // choose your Mail Format! "html" or "text" | "html" oder "text" als format der Mail
        $type       = 'html';                                      

         
        $HtmlMail   = '<html>

                   <head>

                   <title>$subject</title>

                   </head>

                   <body background="http://www.XY.de/grafiken/bg.jpg" text="black">

    <center>
    <table border="1" cellspacing="0" cellpadding="5" width="768" height="600" bgcolor="white">
    <tr>
    <td valign="top"><font face="Arial"><br>
    Hallo XY<br>
    Das war es auch schon. <b>Tschüß</b><br>
    Der Marcus
    </td></tr>
    </table>
                   </body>

                   </html>';

     


    #### HTML Mail Header ###########################

     

    $HtmlHeader  =     "X-Mailer: PHP/" . phpversion(). "\n";
    $HtmlHeader .=     "X-Sender-IP: $REMOTE_ADDR\n";
    $HtmlHeader .=     "Reply-To: [email]XY@Z.de[/email]\n";
    $HtmlHeader .=     "Content-type: text/html; charset=iso-8859-1\n"; 
    $HtmlHeader .=     "From: XY <office@XY.Z.de>\n";

    mail($tomail, $subject, $HtmlMail, $HtmlHeader);

    $res = mysql_query("UPDATE tbl_email set gesendet=now() where email ='".$email."'")or die(mysql_error());

    sleep(1);

    }
    header ("Location:XY");

    ?>

  • #2
    Newsletter sollten grundsätzlich als Plaintext verschickt werden!

    Manche Clients sind nicht in der Lage, HTML anzuzeigen, andere (meiner) sind so konfiguriert, dies nicht zu tun.
    Die meisten Clients machen im Plaintext enthaltene URLs klickbar, Links sind also möglich.

    Kommentar


    • #3
      Vorrab ich stimme onemorenerd zu.

      Ein bisschen Theorie und praxis
      • http://www.zend.com/zend/spotlight/sendmimeemailpart1.php
      • http://www.zend.com/zend/spotlight/sendmimeemailpart2.php
      • http://www.zend.com/zend/spotlight/sendmimeemailpart3.php
      • http://www.zend.com/zend/spotlight/sendmimeemailpart4.php
      • http://www.zend.com/zend/spotlight/sendmimeemailpart5.php


      Schon fertige Packages
      http://phpmailer.sourceforge.net/
      oder
      http://pear.php.net/package/Mail
      http://pear.php.net/package/Mail_Mime
      Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
      PHP Sicherheit
      PHPUnit[1-2]
      Professionelle Softwareentwicklung mit PHP 5
      Professionelle PHP 5-Programmierung

      Kommentar


      • #4
        ich empfehle auch den phpmailer. Hier noch ein echt gutes Tutorial:

        http://www.phpfreaks.com/tutorials/130/0.php

        Kommentar


        • #5
          jo da ham se recht html mails sind müst
          Die Milch bleibt ranzig!

          Kommentar


          • #6
            hey, vielen Dank. Es ist zwar etwas schmerzlich, daß man nun auf Farben und Bilderchen verzichten muss, aber wenns nicht geeeht.

            Wenn ich nun also auf die Herren hören möchte: wie kann ich denn eine HTML Mail (ohne Bilder) auf "Plaintext umbauen".

            Hintergrund: In meinem CMS hat der User einen WYSIWYG Editor für die Eingabe des Newsletter Textes. Für das Versenden möchte ich diesen dort eingegebenen Text gerne weiterbenutzen.

            Dabei müssen <br>'s umgewandelt und <b>'s + co rausgeschrieben werden, oder?

            Gibt es dafür zufällig eine PHP Funktion :-) Ich mein ja nur, bevor ich mich jetzt deppert ans Auslesen mache....

            Dank und Gruß

            Kommentar


            • #7
              Original geschrieben von DeMarcus
              Dabei müssen <br>'s umgewandelt und <b>'s + co rausgeschrieben werden, oder?

              Gibt es dafür zufällig eine PHP Funktion
              strip_tags() - auch wenn die ggf. manchmal etwas zu grob ist.

              wenn man zeilenumbrüche vorher mit nl2br() behandelt hat, wurden die nicht durch <br /> "ersetzt", sondern der tag lediglich hinzugefügt. die zeilenumbrüche sollten in dem falle also noch vorhanden sein.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Danke. Auch wenn diese Frage jetzt etwas banal ist:

                Kann ich also einen text der Form

                bla bla <br> bla bla

                mit der Funktion so umbauen, daß der daraus neu enstandene String als PlainText Mail zu versenden ist?

                Kommentar


                • #9
                  Original geschrieben von DeMarcus
                  Kann ich also einen text der Form

                  bla bla <br> bla bla

                  mit der Funktion so umbauen, daß der daraus neu enstandene String als PlainText Mail zu versenden ist?
                  als plain text versenden kann man vieles - nur bei deinem beispiel solltest du dann keinen zeilenumbruch mehr erwarten, weil da ja wirklich keiner mehr drin ist. da müsstest du also wirklich selber <br> durch einen solchen ersetzen.
                  (wage es jetzt bitte nicht, auch dazu noch ohne dich vorher zu informieren "und wie mache ich das?" zu fragen.)
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Ich brauche das eigentlich nicht zu fragen, denn das habe ich 3 Posting weiter oben bereits getan.

                    Die Frage lautete: Muss ich ein <br> händisch ersetzen, oder gibt es dazu eine Funktion.

                    Kommentar


                    • #11
                      PHP-Code:
                      function br2nl($str) {
                          return 
                      preg_replace("=<br(>|([\s/][^>]*)>)\r?\n?=i""\n"$str);

                      gruss Chris

                      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                      Kommentar


                      • #12
                        Hey, super... Danke.
                        Das hat geholfen.

                        Kommentar

                        Lädt...
                        X