lutz: fehler beim mail() versand

Hallo an alle

Ich habe ein Problem mit meinem php-script.
ich möchte das Formular per mail() verschicken, jedoch kommt dann diese Fehlermeldung:

Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in E:\www\keltik\scriptneu2.php on line 139

nun weiß ich nicht was er da auszusetzen hat:

mail(ini_set(PHP_INI_ALL,PHP_INI_ALL),"$empmail", "$betreff", "$message", "From: $email");

Ich hoffe ihr könnt mir helfen

schönen samstag noch

Lutz

  1. Hallo lutz.

    nun weiß ich nicht was er da auszusetzen hat:

    mail(ini_set(PHP_INI_ALL,PHP_INI_ALL),"$empmail", "$betreff", "$message", "From: $email");

    Vielleicht das deine Parameter überhaupt nicht den erwarteten entsprechen?

    Einen schönen Samstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
  2. Hello,

    Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in E:\www\keltik\scriptneu2.php on line 139

    Auszug aus der mit "phpinfo()" erzeugten Übersicht:

    safe_mode                Off       Off
    safe_mode_exec_dir       no value  no value
    safe_mode_gid            Off       Off
    safe_mode_include_dir    no value  no value

    sendmail_from            me@localhost.com me@localhost.com
    sendmail_path /usr/sbin/sendmail -t -i  /usr/sbin/sendmail -t -i

    Um die vorletzte Zeile geht es.
    Viele MTAs (Mail Transfer Agents) bearbeiten die Mail nicht weiter, wenn kein Absender drinsteht. Das stammt noch aus der Zeit, als die Mail-Nutzer noch ehrlich waren und sich wahrscheinlich auch noch fast alle persönlich kannten.

    PHP leitet eine Mail daher nicht an den MTA (hier "sendmail" [1]) weiter, wenn kein Absender angegeben ist.

    Du kannst diesen entweder im additional Header angeben mittels

    "From: lutz@eample.org"

    oder Du führst ein

    ini_set('sendmail_from','lutz@example.org');

    durch, bevor Du mail() aufrufst.

    Du kannst das Setting evtl. auch in einer .htaccess-Datei durchführen oder, wenn Du Zugriff auf die php.ini hast, natürlich dort. Alternativ geht es noch in der Apache-Konfiguration.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hallo Tom

      ini_set('sendmail_from','lutz@example.org');

      habe ich jetzt mal so gemacht.
      wenn der Server aber das hier ausspuckt:

      Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\www\keltik\scriptneu2.php on line 141

      muss ich das dann so lösen:
      ini_set("SMTP","localhost");
      ini_set("smtp_port",25);

      nur was sool nun anstelle von localhost und 25 hin??
      das checke ich nicht durch!

      danke für eure Hilfe

      Lutz

      1. Du nutzt Windows als Betriebssystem, oder? Soweit ich richtig informiert bin akzeptiert Windows keinen sendmail_path-Parameter. Auf einem richtig konfigurierten Webserver oder auf einem Linux-System solltest du keine Probleme haben.

        Unter Windows kann dir aber ein Mailserver Abhilfe schaffen.

        1. Hello,

          Du nutzt Windows als Betriebssystem, oder? Soweit ich richtig informiert bin akzeptiert Windows keinen sendmail_path-Parameter. Auf einem richtig konfigurierten Webserver oder auf einem Linux-System solltest du keine Probleme haben.

          Unter Windows kann dir aber ein Mailserver Abhilfe schaffen.

          Das scheint der Grund zu sein...
          auf "E:..." habe ich eben gar nicht geachtet, und einfach Linux als OS angenommen.

          siehe auch http://www.ntsendmail.com/

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau

          1. HI

            der Server zeigt in der Tat das an.
            sendmail_path no value no value

            und ist ein windows NT server.

            siehe auch http://www.ntsendmail.com/

            aber das ist doch nur für perl-scripte, oder?

            ich hab in solchen Servergeschichten leider keinen Durchblick...sorry

            Grüße
            Lutz

            1. Hello,

              der Server zeigt in der Tat das an.
              sendmail_path no value no value

              und ist ein windows NT server.

              siehe auch http://www.ntsendmail.com/
              aber das ist doch nur für perl-scripte, oder?

              Das ist die Umsetzung von sendmail-typischen Anforderungen auf den Windows-Standard.
              Wenn Du also einen MTA unter Windows eingerichtet hast, dann soll dieses Script Dir helfen, den auch mit PHP benutzen zu können. Ich habe es bisher nicht selber ausprobiert.

              ich hab in solchen Servergeschichten leider keinen Durchblick...sorry

              Das kann sich nach und nach ändern... :-)

              Such Dir also erstmal einen MTA (Mailserver) für Windows im Internet. da gibt es bestimmt auch Freeware, wenn auch nicht soviel, wie für Linux. Wenn der dann läuft, kann man weitersehen.

              Harzliche Grüße vom Berg
              http://www.annerschbarrich.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau

              1. Hello,

                Such Dir also erstmal einen MTA (Mailserver) für Windows im Internet. da gibt es bestimmt auch Freeware, wenn auch nicht soviel, wie für Linux. Wenn der dann läuft, kann man weitersehen.

                Gleich der erste Treffer mach einen vertrauenserweckenden Eindruck.

                http://www.tecchannel.de/server/windows/401807/index.html

                Harzliche Grüße vom Berg
                http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau

                1. Hi Tom

                  http://www.tecchannel.de/server/windows/401807/index.html
                  wenn ich das richtig verstehe macht die software aus meinem PC einen mailserver oder täusche ich mich da??

                  gruß

                  Lutz

                  1. Hello,

                    http://www.tecchannel.de/server/windows/401807/index.html
                    wenn ich das richtig verstehe macht die software aus meinem PC einen mailserver oder täusche ich mich da??

                    Volkstümlich ausgedrückt: Ja

                    Fachlich müsste es wahrscheinlich heißen: Die Software richtet auf Deinem Host den Dienst eines Mail Transfer Agent ein.

                    Ohen diesen, wirst Du keine Mail versenden können von deinem Webserver, der sich doch auch auf Deinem Host befindet.

                    Welches Windows verwendest Du?

                    Harzliche Grüße vom Berg
                    http://www.annerschbarrich.de

                    Tom

                    --
                    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                    Nur selber lernen macht schlau

                    1. Hi
                      ok ich nutz XP auf meinem PC.
                      Aber wenn ich meinen PC als Server nutze kann doch niemand vom Netz her darauf zugreifen??

                      gruß

                      lutz

                      1. Hello,

                        Aber wenn ich meinen PC als Server nutze kann doch niemand vom Netz her darauf zugreifen??

                        Das hängt von der Einrichtung des Mailservers ab.

                        Ich habe den selber noch nie eingerichtet.
                        I.d.R. sollte man einstellen können, von wo aus darauf zugegriffen werden darf.

                        - Nur lokale Adressen
                         - Öffentliche Adressen nur von benannten IPs und Domains
                         - alle öffentlichen Adressen ohne Spamliste
                         - alle (open Relay)

                        So ungefähr muss es sein...

                        Harzliche Grüße vom Berg
                        http://www.annerschbarrich.de

                        Tom

                        --
                        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                        Nur selber lernen macht schlau

      2. Hello,

        wenn der Server aber das hier ausspuckt:

        Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\www\keltik\scriptneu2.php on line 141

        muss ich das dann so lösen:
        ini_set("SMTP","localhost");
        ini_set("smtp_port",25);

        nur was sool nun anstelle von localhost und 25 hin??

        Die Einstellungen hat PHP benutzt.
        Wahrscheinlich ist gar kein Mail Transfer Agent eingerichtet
        Kannst Du denn über den Server mailen, z.B. von der Konsole aus?

        Schau mal, was bei sendmail_path drinsteht.

        Kannst Du Dir die Prozessübersicht vom Server holen?

        dann gib mal "ps -afx" ein und poste das Ergebnis (wenn es nicht zuuu lang wird)

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau