guklplatzwart
Newbie
Hallo Leute.
Irgendwie habe ich da ein mehr oder minder mittelschweres Problem.
Zunächst mal zu den Rahmenbedingungen:
Suse 9.3 Pro
apache 2.0.50
PHP 4.3.8
Postfix 2.5.1-3 Mailserver
Webserver läuft, das PHP Modul arbeitet (zumindest im Browser) korrekt und postfix führt seinen Dienst ebenfalls aus.
Nun zu meinem Problem:
Ein Webformular, welches im Browser ausgefüllt wird, soll per E-mail an den Empfänger verschickt werden.Diese E-mail verschwindet irgendwo im Daten Nirvana.Daher poste ich das ganze auch mal in dieses Forum, da es aus meiner Sicht um das Thema E-mail geht. Das PHP Script lief bereits erfolgreich auf meinem Webserver. Ist allerdings schon einiges her, so dass ich mir vorstellen kann die register_globals in der php.ini auf on gestellt zu haben. Aktuell arbeite ich mit register_globals = off. Aus Sicherheitsgründen denke ich sollte man das auch so belassen.Absolut gleiches Script möchte ich nun wieder verwenden. Jetzt allerdings ohne Erfolg.
Hier mal die mail() Funktion meines php Scripts:
script_anfang->
// Formulardaten verschicken
$header = "From: $Name <$Email>\n";
$header .= "Reply-To: $Email\n";
$header .= "Content-Type: text/plain";
mail("musteradresse@musterweb.de", "Kontaktformular"," Folgende Nachricht wurde vom Kontaktformular
aus gesendet am $date
--------------------------------------------------------
Name: $Name
Vorname: $Vorname
PLZ: $Postleitzahl
Ort: $Ort
Straße: $Strasse
Email: $Email
Nachricht:
$Nachricht
$ip
--------------------------------------------------------
","$header");
<-sript_ende
Die für diese Funktion zuständigen Parameter in der php.ini (meines wissens nach):
sendmail_path = /usr/sbin/sendmail -t -i (habe ich auch schon ohne den Parameter -i versucht)
SMTP = smtp.1und1.de
smtp_port = 25
Zunächst habe ich über sendmail gearbeitet. Dieses sowohl mit dem Parameter -i als auch ohne diesen in der php.ini.
Der MTA in Yast hat von mir folgende Einstellungen erhalten:
Für den ausgehenden Server: smtp.1und1.de mit Benutzernamen und Password.
Für den mailversand: pop.1und1.de mit entferntem Benutzer und Password, auf lokalem Benutzer "lehrling".
Diese Einstellungen sind nach wie vor gültig.
Es war dann meine Vermutung, dass sendmail nicht für die oben beschriebene Aufgabe nicht geiegnet sei. Also habe ich sendmail deinstaliert und postfix per Yast instaliert. Folgende How To's habe ich dazu hier aus diesem Board zur konfiguration durchgearbeitet:
HOW-TO Postfix Grundeinstellung ! Dann alles Andere!
HOW-TO amavis-new & spamassassin einbauen SuSE 9.3
Aufgrund dieser How To's stelle ich hier mal einen Auszug aus /etc/postfix/main.cf ein:
proxy_interfaces = 192.168.0.1
sendmail_path = /usr/sbin/sendmail
myhostname = linvisio.Dragonheart
inet_interfaces = all
mynetworks = 192.168.0.2/60,127.0.0.0/4
relayhost = [smtp.1und1.de]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
double_bounce_sender = lehrling@localhost
empty_adress_recipient = lehrling@localhost
Darauf hin habe ich die diversen Tests durchgeführt, die da wären:
Mailversand als root von der Konsole - funktioniert,
Mailversand als lehrling mit K-Mail über die Versandart Name:meinrechner und Typ:sendmail(standard) - funktioniert. Dann auch noch mal als root mit K-Mail eine E-mail abgeschickt bei gleichen Einstellungen - funktioniert auch.
Jetzt wollte ich wissen ob das php Script eine E-mail generieren kann und schritt zur tat über. Den Internet Explorer geöffnet und das Formular ausgefüllt und abgeschickt. Dabei habe ich auch wieder in der php.ini den Parameter -i ein- und ausgesetzt. So habe ich mehrmals versucht eine E-Mail zu erhalten. Alle natürlich an mich selbst adressiert (im php Script). Das sind die letzten Mail aktionen auf Linux.
Nun schaute ich mir die verschiedenen log-files an:
Unter /var/log/mail.err findet sich als letzten Eintrag:
Dec 9 21:33:57 linvisio postfix/cleanup[6564]: fatal: open /ets/postfix/header_checks: No such file or directory
Dabei ist leicht erkennbar das der Pfad mit /ets/ und nicht mit /etc/ beginnt. Alle anschließenden Aktionen sind hier nicht aufgeführt. Gleiches gilt für /var/log/mail. Auch hier sind die letzten Aktionen (weder das Versenden, noch das Nichtversenden) nicht dokumentiert.
Unter /var/log/mail finden sich in der Textdatei keinerlei Hinweise darauf ob eine vom PHP Script generierte E-mail das System verlassen hat.
Der Mailqueue ist leer. Das habe ich als root mit dem Befehl mailq noch während der Laufzeit überprüft.
Lediglich der apache hat zu dieser ganzen Sache eine Fehlermeldung parat, auf die ich mir allerdings keinen Reim machen kann.
Im apache error_log findet sich folgender Eintrag:
sh: /usr/sbin/sendmail-t: No such file or directory
Der apache läuft unter dem lokalen Benutzer "lehrling" mit GID 100.
Diese ganze Sache hat mich jetzt zwei ein halb Tage gekostet, und es funktioniert immer noch nicht. Vor lauter configs, nutzen der SuFu sowohl hier im Board als auch per Google und lesen von Literatur weiß ich nicht mehr wo ich weiter machen soll. Dabei stellt sich mir noch eine ganz andere Frage: Ist ein Handelsüblicher PHP-fähiger Webspace ebenso Umfangreich konfiguriert?? Oder nicht?? Wäre nämlich schön zu wissen das der probe Webserver daheim eine änliche Umgebung darstellt wie die offiziellen Webspaces.
An alle die hier angekommen sind, vielen Dank fürs lesen und auch schon mal vorab für die Hilfe.
MfG
guklplatzwart
Irgendwie habe ich da ein mehr oder minder mittelschweres Problem.
Zunächst mal zu den Rahmenbedingungen:
Suse 9.3 Pro
apache 2.0.50
PHP 4.3.8
Postfix 2.5.1-3 Mailserver
Webserver läuft, das PHP Modul arbeitet (zumindest im Browser) korrekt und postfix führt seinen Dienst ebenfalls aus.
Nun zu meinem Problem:
Ein Webformular, welches im Browser ausgefüllt wird, soll per E-mail an den Empfänger verschickt werden.Diese E-mail verschwindet irgendwo im Daten Nirvana.Daher poste ich das ganze auch mal in dieses Forum, da es aus meiner Sicht um das Thema E-mail geht. Das PHP Script lief bereits erfolgreich auf meinem Webserver. Ist allerdings schon einiges her, so dass ich mir vorstellen kann die register_globals in der php.ini auf on gestellt zu haben. Aktuell arbeite ich mit register_globals = off. Aus Sicherheitsgründen denke ich sollte man das auch so belassen.Absolut gleiches Script möchte ich nun wieder verwenden. Jetzt allerdings ohne Erfolg.
Hier mal die mail() Funktion meines php Scripts:
script_anfang->
// Formulardaten verschicken
$header = "From: $Name <$Email>\n";
$header .= "Reply-To: $Email\n";
$header .= "Content-Type: text/plain";
mail("musteradresse@musterweb.de", "Kontaktformular"," Folgende Nachricht wurde vom Kontaktformular
aus gesendet am $date
--------------------------------------------------------
Name: $Name
Vorname: $Vorname
PLZ: $Postleitzahl
Ort: $Ort
Straße: $Strasse
Email: $Email
Nachricht:
$Nachricht
$ip
--------------------------------------------------------
","$header");
<-sript_ende
Die für diese Funktion zuständigen Parameter in der php.ini (meines wissens nach):
sendmail_path = /usr/sbin/sendmail -t -i (habe ich auch schon ohne den Parameter -i versucht)
SMTP = smtp.1und1.de
smtp_port = 25
Zunächst habe ich über sendmail gearbeitet. Dieses sowohl mit dem Parameter -i als auch ohne diesen in der php.ini.
Der MTA in Yast hat von mir folgende Einstellungen erhalten:
Für den ausgehenden Server: smtp.1und1.de mit Benutzernamen und Password.
Für den mailversand: pop.1und1.de mit entferntem Benutzer und Password, auf lokalem Benutzer "lehrling".
Diese Einstellungen sind nach wie vor gültig.
Es war dann meine Vermutung, dass sendmail nicht für die oben beschriebene Aufgabe nicht geiegnet sei. Also habe ich sendmail deinstaliert und postfix per Yast instaliert. Folgende How To's habe ich dazu hier aus diesem Board zur konfiguration durchgearbeitet:
HOW-TO Postfix Grundeinstellung ! Dann alles Andere!
HOW-TO amavis-new & spamassassin einbauen SuSE 9.3
Aufgrund dieser How To's stelle ich hier mal einen Auszug aus /etc/postfix/main.cf ein:
proxy_interfaces = 192.168.0.1
sendmail_path = /usr/sbin/sendmail
myhostname = linvisio.Dragonheart
inet_interfaces = all
mynetworks = 192.168.0.2/60,127.0.0.0/4
relayhost = [smtp.1und1.de]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
double_bounce_sender = lehrling@localhost
empty_adress_recipient = lehrling@localhost
Darauf hin habe ich die diversen Tests durchgeführt, die da wären:
Mailversand als root von der Konsole - funktioniert,
Mailversand als lehrling mit K-Mail über die Versandart Name:meinrechner und Typ:sendmail(standard) - funktioniert. Dann auch noch mal als root mit K-Mail eine E-mail abgeschickt bei gleichen Einstellungen - funktioniert auch.
Jetzt wollte ich wissen ob das php Script eine E-mail generieren kann und schritt zur tat über. Den Internet Explorer geöffnet und das Formular ausgefüllt und abgeschickt. Dabei habe ich auch wieder in der php.ini den Parameter -i ein- und ausgesetzt. So habe ich mehrmals versucht eine E-Mail zu erhalten. Alle natürlich an mich selbst adressiert (im php Script). Das sind die letzten Mail aktionen auf Linux.
Nun schaute ich mir die verschiedenen log-files an:
Unter /var/log/mail.err findet sich als letzten Eintrag:
Dec 9 21:33:57 linvisio postfix/cleanup[6564]: fatal: open /ets/postfix/header_checks: No such file or directory
Dabei ist leicht erkennbar das der Pfad mit /ets/ und nicht mit /etc/ beginnt. Alle anschließenden Aktionen sind hier nicht aufgeführt. Gleiches gilt für /var/log/mail. Auch hier sind die letzten Aktionen (weder das Versenden, noch das Nichtversenden) nicht dokumentiert.
Unter /var/log/mail finden sich in der Textdatei keinerlei Hinweise darauf ob eine vom PHP Script generierte E-mail das System verlassen hat.
Der Mailqueue ist leer. Das habe ich als root mit dem Befehl mailq noch während der Laufzeit überprüft.
Lediglich der apache hat zu dieser ganzen Sache eine Fehlermeldung parat, auf die ich mir allerdings keinen Reim machen kann.
Im apache error_log findet sich folgender Eintrag:
sh: /usr/sbin/sendmail-t: No such file or directory
Der apache läuft unter dem lokalen Benutzer "lehrling" mit GID 100.
Diese ganze Sache hat mich jetzt zwei ein halb Tage gekostet, und es funktioniert immer noch nicht. Vor lauter configs, nutzen der SuFu sowohl hier im Board als auch per Google und lesen von Literatur weiß ich nicht mehr wo ich weiter machen soll. Dabei stellt sich mir noch eine ganz andere Frage: Ist ein Handelsüblicher PHP-fähiger Webspace ebenso Umfangreich konfiguriert?? Oder nicht?? Wäre nämlich schön zu wissen das der probe Webserver daheim eine änliche Umgebung darstellt wie die offiziellen Webspaces.
An alle die hier angekommen sind, vielen Dank fürs lesen und auch schon mal vorab für die Hilfe.
MfG
guklplatzwart