Konrad: Verlässlichkeit von mail();

Welche Aussage ist richtig?

a) mail(); kann ab und zu (z.B. bei schlechter Serverkonfiguration) versagen. Bei diesem Versagen wird kein Fehler angezeigt.

b) mail(); funktioniert entweder (=> Email wird erfolgreich verschickt) oder gibt eine Fehlermeldung aus.

Das Problem ist, dass mail(); in eigenen Tests bei 1 von 2 Adressen funktionierte, bei der Fremdprobe (1 Adresse) aber (scheinbar) keine Email verschickte. Nun kann ich allerdings nicht festlegen, ob es an meinem Script oder am Server liegt...

Gruß
Konrad

  1. mail()m arbeitet ja mit dem mailserver (bei LAMP meist sendmail) zusammen. Wenn kein mailserver gefunden wurde dann gibt mail IMMER eine fehlermeldung aus.
    Allerdings: sendmail zu konfigurieren ist nicht ganz einfach, da gibts bücher drüber die sind dick wie meine Oberschenkel.

    Somit ist klar das mail() dann wahrscheinlich richtig den mailserver anspricht, was ab da passiert ist allerdings unklar.

    Wenn dir mail() stinkt und du nen mailserver hast den du benutzen kannst:

    http://sourceforge.net/projects/phpxpath/

    1. Abend,

      Allerdings: sendmail zu konfigurieren ist nicht ganz einfach

      Ich habe keinen direkten Serverzugriff, da muss ich meinem Hoster vertrauen.

      Somit ist klar das mail() dann wahrscheinlich richtig den mailserver anspricht, was ab da passiert ist allerdings unklar.

      Eine Überprüfung ist also ab dem Mailserver ausgeschlossen? mail(); selber gibt noch TRUE zurück.

      Wenn dir mail() stinkt und du nen mailserver hast den du benutzen kannst: http://sourceforge.net/projects/phpxpath/

      Hm? Das ist laut Beschreibung eine Suchmaschine für XML-Dateien. Ich kann da keinen Bezug auf Mailversand erkennen.

      Einen (Domain-)eigenen Mailserver scheine ich zu haben, mail.meinedomain.de existiert.

      Gruß
      Konrad

      1. Hello,

        Somit ist klar das mail() dann wahrscheinlich richtig den mailserver anspricht, was ab da passiert ist allerdings unklar.

        Eine Überprüfung ist also ab dem Mailserver ausgeschlossen? mail(); selber gibt noch TRUE zurück.

        Beschäftige Dich mal mit den möglichen Mail-Headern. Die findest Du in den RFCs und die Nummern dafür wiederum bei der mail()-Funktion im PHP-Manual.

        Du kannst Dir selber eine BCC schicken und du kannst eine Reply-Adresse angeben für den Fall, dass der Empfängerserver einen delivery error auslöst.

        Mehr Kontrolle wäre ja schon paranoid ;-)
        Bei der guten alten Schneckenpost weiss man ja leider auch schon lange nicht mehr, ob die Briefe noch ankommen oder in irgend einer Mülltonne landen oder einfach vor die Tür gelegt werden...

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. Hallo!

    a) mail(); kann ab und zu (z.B. bei schlechter Serverkonfiguration) versagen. Bei diesem Versagen wird kein Fehler angezeigt.

    das kommt auf den Fehler an...

    b) mail(); funktioniert entweder (=> Email wird erfolgreich verschickt) oder gibt eine Fehlermeldung aus.

    nein.

    Du musst den Rückgabewert von mail selber prüfen: http://de3.php.net/manual/de/function.mail.php

    Und auch wenn hier keine Fehlermeldung kommt heist dass noch lange nicht das die mail erfolgreich verschickt wurde.

    "mail() gibt TRUE zurück, wenn die Mail erfolgreich für den Versand akzeptiert wurde, sonst FALSE."

    Grüße
    Andreas

    PS: http://www.dclp-faq.de/ch/ch-mail.html, http://pear.php.net/manual/en/package.mail.php