Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PHP mail() - Mails als HTML funktioniert nicht auf neuem Server

Einklappen

Neue Werbung 2019

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

  • [Erledigt] PHP mail() - Mails als HTML funktioniert nicht auf neuem Server

    Hallo,

    mein Provider hat gestern seine Server umgestellt. Seitdem funktioniert meine php Mail Funktion nicht mehr richtig. Ich kann zwar Mails verschicken aber nicht mehr im HTML Format.

    Ich nutze zum testen ein einfaches Script. Das sieht wie folgt aus:

    PHP-Code:
    <?php
    $to 
    "an@mich.de";
    $subject "HTML email";

    $message "
    <html>
    <head>
    <title>HTML email</title>
    </head>
    <body>
    <p>This email contains HTML Tags!</p>
    <table>
    <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    </tr>
    <tr>
    <td>John</td>
    <td>Doe</td>
    </tr>
    </table>
    </body>
    </html>
    "
    ;

    $headers "From: server@example.com\r\n" .
            
    'X-Mailer: PHP/' phpversion() . "\r\n" .
            
    "MIME-Version: 1.0\r\n" .
            
    "Content-Type: text/html; charset=utf-8\r\n" .
            
    "Content-Transfer-Encoding: 8bit\r\n\r\n";

    mail($to,$subject,$message,$headers);
    ?>
    Wenn ich dieses Script auf einem anderen (oder auf unserem alten Server) ausführe bekomme ich eine E-Mail im HTML Format. So wie es sein soll.

    Wenn ich das Script auf unserem neuen Server ausführe bekomme ich folgende E-Mail:

    X-Mailer: PHP/5.2.6-1+lenny10 MIME-Version: 1.0 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit Message-Id: <20110707100605.30DF11038006@xxxxx.de>
    Date: Thu, 7 Jul 2011 12:06:05 +0200 (CEST)



    <html> <head> <title>HTML email</title> </head> <body> <p>This email contains HTML Tags!</p> <table> <tr> <th>Firstname</th> <th>Lastname</th> </tr> <tr> <td>John</td> <td>Doe</td> </tr> </table> </body> </html>
    Im Absenderfeld ist noch folgendes: server@example.com X-CleanMail-Result: Passed (nur beim neuen Server!)

    Auf dem neuen Server läuft die PHP Version: 5.2.6-1+lenny10
    und auf den anderen Testservern (wo es geht): 5.2.17 und 5.2.0

    Natürlich habe ich schon mit dem Provider gesprochen... Die Antwort war "...Auf dem neuen System sind eine Menge Kunden, welche die ()mail Funktion für Newsletter etc. nutzen und bisher haben wir diesbzgl. noch keine Beschwerden/Anfragen gehabt...".

    Ich weiß einfach nicht woran das liegen kann. Gibts vllt. in der PHP.ini irgendwelche Settings die evtl. falsch konfiguriert sind? Ich kenne nur die SMTP Einstellungen, die sind korrekt - sonst würde keine mail rausgehen...

    Wäre für jeden Tipp dankbar,

    Liebe Grüße,

    Christian

  • #2
    Woran das hier jetzt konkret liegen könnte kann ich dir leider nicht sagen.
    Ich kann dir aber generell nur raten, von der mail()-Funktion Abstand zu nehmen, und stattdessen eine fertige Mailer-Klasse zu nutzen (z.B. PHPMailer).

    Kommentar


    • #3
      hm - wie ich sehe benutzt du von mail() die "Variante" mit 4 Parametern. Es gibt in Deutschland (und womöglich woanders auch) Hoster / Provider, wo du zwingend den optionalen 5ten Parameter angeben musst - (Strato mal als Beispiel) - die Hoster / Provider befördern bzw nehmen deine Mail nur an, wenn der 5te Parameter dich über die dir zugewiesene Mail-Adresse als "Mitglied im Klub" ausweist (also der 5te Parameter muss nochmal deine Absende-Adresse tragen - und die muss eine sein, die du von dem Provider bekommen hast - sonst ist eben nix mit mail)
      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

      Kommentar


      • #4
        Zitat von chr1s-eg Beitrag anzeigen
        Im Absenderfeld ist noch folgendes: server@example.com X-CleanMail-Result: Passed (nur beim neuen Server!)
        Zwei Header, die als einer interpretiert werden - idR. ziemlich deutliches Anzeichen dafür, dass etwas mit den Zeilenumbrüchen nicht stimmt.
        \r\n ist zwar erst mal korrekt - es gibt aber teilweise MTAs, die daran noch mal selber rumpfuschen, bevor sie die Mail raussenden.

        X-CleanMail-Result sieht so aus, als ob dir hier ein Spamfilter o.ä. dazwischen pfuscht - ob der selber fehlerhaft arbeitet, oder aber bereits eine nicht standardkonforme Mail erhält, kann man von außen natürlich nicht beurteilen.


        Davon abgesehen kann man aber SinnlosS nur Recht geben: Wer Mails selber mit mail() versendet, bettelt darum, früher oder später Probleme damit zu bekommen. Verwende eine Mailer-Klasse. Punkt.
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          Hallo,

          danke für die Antworten. Klar ich habe auch schon über eine Mailer-Klasse nachgedacht.

          Ich werde mal eine probieren und Rückmeldung geben.

          Danke


          ***EDIT

          Ich verwende jetzt den phpmailer, der funktioniert einwandfrei.

          Kommentar

          Lädt...
          X