Über mail() werden keine E-Mails mehr versendet

  • Hallo!


    Über meine bisher funktionierende Scripte werden mit der Funktion mail() in php keine E-Mails mehr versendet.


    Auch der einfache Test-Code

    PHP
    <? mail("meine@emailadresse.de", "Test-Betreff", "Test-Text"); ?>

    versendet an mich keine E-Mail.
    (Den Spam-Filter habe ich natürlich überprüft.)


    Vielen Dank für eure Hilfe!


    (Ich habe einen einfachen vServer)

  • Mach mal folgendes um zu testen ob mail() fehlschlägt:


    PHP
    if(!mail("meine@emailadresse.de", "Test-Betreff", "Test-Text")) {
        die('Mail-Error');
    }

    Wenn er das Script abbricht und Mail-Error ausgibt kannst du dir sicher sein das es nicht versendet wird.
    Dann solltest du die Einstellungen in der PHP.ini prüfen ...

  • Quote from PHP Dokumentation

    Note: When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.
    Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. The From header sets also Return-Path under Windows.


    http://de3.php.net/manual/en/function.mail.php


    Das/Falls eine Fehlermeldung nicht ausgegeben wird könnte an display_errors Off liegen.

  • Vielen Dank für die Antworten.


    Der Mail-Test ist positiv, d.h. es wird keine Fehlermeldung ausgegeben.


    Und display_errors ist laut phpinfo() "On".


    Leider funktioniert es immer noch nicht :(

  • Hallo,
    Schickst du die Mail an eine eMail-Adresse auf deinem vServer?
    Hast du es mal mit einer anderen von den "gänigen" Freemailern probiert?


    Ich hab hier mal ein Script aufgesetzt das funktioniert 100% und falls ein Fehler auftritt ihn auch sicherlich anzeigt:


    Teste das mal, weil eigentlich kann es nicht sein, das die eMail nicht ankommt obwohl php sie versendet ... (War bei mir noch nie so!)

  • Danke, Seb!


    Das Script gibt "eMail - Sent!" aus, aber es kommt immernoch nichts an.


    Ich benutze den vServer nicht für E-Mails und habe somit (inzwischen mehrere) externe E-Mailadressen benutzt.
    mail() ist es ja egal welche Absenderadresse man nutzt.

  • So, nach einem Server-Neustart geht wieder alles!


    Trotzdem komisch, dass es nicht mehr geklappt hat und es auch keine Fehlermeldung gab.

  • OK, aber falls das Problem wiederkommt schau mal in die Apache Logs ...
    Und poste deinen php.ini ;)

  • Schau dir einmal die Logs vom lokalen Mailserver an, dort sollten genauere Details vom vorherigen Fehler ersichtlich sein ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Vielleicht ist das Ding in der mailq hängen geblieben?
    Werden denn "nicht-PHP"-Mails verwendet?
    Zur größten Not kannste du ja mal /usr/bin/mail ausprobieren:

    Code
    shell_exec('echo "Boun-Chicka-Whoua-whoua!" | mail -s "Betreffs sind d00f" deine@email.tld


    EDIT: Ups, etwas spät, wa? xD

    Mein Server:
    v(olks)Server 1. Serie: 2,5GHz, 1024MB RAM, 1024MB Swap, 2x60GB-Raid1-HDD, Traffic-Flat
    Node:
    78.46.117.9x | hos-tr2.ex3k4.rz7.hetzner.de