Ankündigung

Einklappen
Keine Ankündigung bisher.

mail() funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • mail() funktioniert nicht

    Hallo!

    Oft gefunden diese Frage im Web, aber nirgendwo eine Lösung die auch mir hilft.

    Hab meine mail-Funktion schon aufs Wesentlichste reduziert, aber es funktioniert noch immer nicht:

    PHP-Code:
    $nachricht "Zeile 1 Zeile 2 Zeile 3";
    mail('XXX@gmx.at''Betreff'$nachricht,'From: XXX@example.com') or die("Fehler"); 
    ...er bricht immer mit der Ausgabe "Fehler" ab.

    Ein paar Werte aus der phpinfo(), die etwas mit "mail" zu tun haben (könnten):

    PHP Version 4.3.1
    sendmail_from: me@localhost.com
    sendmail_path: /webbin/bin/phpmail.sh
    SMTP: localhost
    smtp_port: 25
    Path to sendmail: /webbin/bin/phpmail.sh

    Eigentlich sollte es doch funktionieren, nicht? Worauf soll ich denn noch achten?

    Grüße, Rocco

  • #2
    Was außer dem Wort Fehler steht denn noch in der ausgegebenen Meldung?
    [PHP]if ($var != 0) {
    $var = 0;
    }[/PHP]

    Kommentar


    • #3
      Nichts

      lasse ich das "or die("Fehler")" weg, bekomm ich eine leere Seite. Die Mail kommt in beiden Fällen nicht an.

      Kommentar


      • #4
        error_reporting (E_ALL);
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Am einfachsten wird es sein, mal eben den phpmailer auszuprobieren - der liefert recht anschauliche Fehlermeldungen.
          [PHP]if ($var != 0) {
          $var = 0;
          }[/PHP]

          Kommentar


          • #6
            Da keiner weis das phpmail.sh wirklich macht solltest du erstmal so vorgehen:

            1) in der FAQ des Hosters schauen ob da irgendwelche Infos stehen, z.b. ob irgendwelche Header bei der Nutzung von mail() Pflicht sind oder sowas, viele Provider nutzen das um den mißbrauch von mail() für SPAM etwas zu drosseln.

            2) in den Logs schauen, wenn du Zugang zu ner error-log von php/webserver hast, kannst du dort mehr infos finden, z.b. warum der Mailserver die Mail abgelehnt hat

            3) Wenn das alles nichts hilft, mal beim Provider direkt nachfragen, vielleicht ist mail() auch komplett gesperrt und das pseudo-script phpmail.sh soll nur versuche erfassen die gemacht werden trotzdem mail() zu nutzen.


            Ansonsten bietet sich anstatt mail() zu nutzen, es sich auch oftmals an direkt über ein vorhandenes Email-Postfach zu senden über eine fertige Klasse wie z.b.:
            Codeworx Technologies
            PEAR :: Package :: Mail
            Zend Framework: Documentation
            oder ähnlichem.
            [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
            | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

            Kommentar


            • #7
              Manchmal hilft auch schon der 4.parameter -f, mit dem man das return-to setzt.

              Was ist phpmail.sh ? Ich binde nur class.phpmailer.php ein.
              [PHP]if ($var != 0) {
              $var = 0;
              }[/PHP]

              Kommentar


              • #8
                Zitat von Wolla Beitrag anzeigen
                Was ist phpmail.sh ? Ich binde nur class.phpmailer.php ein.
                Im Falle des TO ist phpmail.sh das in der php.ini angegebenen sendmail-script, was auch immer dahinter steckt, hat also nichts mit phpmailer oder so zu tun sondern die server-seitige Sache.
                [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                Kommentar


                • #9
                  Danke für die äußerst ausführliche Antwort robo47.

                  Ich hab' die Firma kontaktiert und bekam die Antwort dass die Empfänger-E-Mail-Adresse freigeschalten werden müssen um Spam zu reduzieren wahrscheinlich. Da sich bei mir die Empfänger immer unterscheiden werde ich mir deine Links mal genauer anschaun.

                  Danke nochmal!

                  Kommentar


                  • #10
                    OT
                    Wenn alle mailserver der Welt erst dann Mails transportierten, wenn man vorher schriftliche Anträge unter Nennung des Empfängers, des Sendegrundes und einer kurzen Darstellung des Inhalts eingereicht hat, dann wäre das das Ende des Spams. Aber auch der Freiheit.
                    [PHP]if ($var != 0) {
                    $var = 0;
                    }[/PHP]

                    Kommentar


                    • #11
                      Zitat von Wolla Beitrag anzeigen
                      OT
                      Wenn alle mailserver der Welt erst dann Mails transportierten, wenn man vorher schriftliche Anträge unter Nennung des Empfängers, des Sendegrundes und einer kurzen Darstellung des Inhalts eingereicht hat, dann wäre das das Ende des Spams. Aber auch der Freiheit.
                      Schriftlich in 3facher Ausfertigung und mindestens 1 Woche vor Versand innerhalb eines Landes, bei Versand ins innerhalb Europa 3 Wochen und Alles was weiter weg ist 2 Monate ....


                      Naja ich finde es ja toll dass Provider etwas gegen Spam tun, aber solche Restriktionen, dass man jeden Empfänger "anmelden" muss find ich schon ziemlich hart, aber via php phpmailer und co sollte das ja alles kein Problem mehr sein.
                      [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                      | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                      Kommentar


                      • #12
                        Tut mir leid war mein Fehler. Nach einem Antwortmail bin ich aufgeklärt worden dass sie nicht die Adresse des Empfängers freischalten müssen, sondern die des Absenders. ...warum auch immer...

                        Ich nehm an die meinen damit die Adresse die hinter dem "From: " bei den Header-Einstellungen zu finden ist, oder?

                        Kommentar

                        Lädt...
                        X