fehler beim mail() versand
lutz
- php
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
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
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
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
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.
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
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
Hello,
der Server zeigt in der Tat das an.
sendmail_path no value no valueund 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
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
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
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
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
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
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