PHP sendmail auf 1&1 Root Server Start!

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
popper2001
Posts: 35
Joined: 2003-06-28 19:07

PHP sendmail auf 1&1 Root Server Start!

Post by popper2001 » 2003-06-28 19:17

Hallo zusammen,

bin grade etwas am Verzweifeln! Vielleicht kann mir ja hier jemand schnell auf die Sprünge helfen.

Versuche seit zwei Tagen einen 1&1 Root Server Start zum Laufen zu kriegen, bisher auch mit einigermaßen großem Erfolg, allerdings bin ich heute auf ein Problem gestoßen, dass mich in den Wahnsinn treibt.

Es geht um Folgendes: Auf einer der Kundenseiten (webX) soll ein stinknormales mail() Script über PHP Formulardaten übermitteln. Bisher lag dieses Script in einem Puretec Premium Paket und hat dort auch einwandfrei dunktioniert. Auf dem Root-Server allerdings keine Chance. Hab leider nicht die geringste Ahnung, woran es noch liegen kann, da es sich bei dem mail() Befehl ja um einen absoluten Standartbefehl aus PHP handelt und PHP sonst eigentlich auch einwandfrei läuft.

Hat irgendjemand vielleicht eine Idee?

Grüße
popper2001

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-06-28 21:00

Hallo popper,
die Mailfunktion von PHP kann keine SMTP-Authenzifiezierung.
Wenn sendmail so eingestellt ist, dass es nur Mails von authentifizierten Usern relayed, dann funktioniert sie nicht.

Abhilfe schafft:

Entweder sendmail so konfigurieren, dass mails von localhost immer relayed werden,
Oder eine PHP-Klasse benutzen, die dass kann, z.B. phpmailer

In der php.ini solltest du folgenden Eintrag finden:

; For Unix only. You may supply arguments as well (default: 'sendmail -t -i').
sendmail_path = '/usr/sbin/sendmail -t -i'

Der Pfad muss stimmen

Gruss

Marc

floschi
Userprojekt
Userprojekt
Posts: 3388
Joined: 2002-07-18 08:13
Location: München

Re: PHP sendmail auf 1&1 Root Server Start!

Post by floschi » 2003-06-28 22:02

ich habe mir erlaubt, das HILFE! aus deinem Topic zu entfernen - jeder der hier postet sucht Hilfe, nicht nur du ;)

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Danke!

Post by popper2001 » 2003-06-28 22:31

@squize:

Erst einmal vielen Dank für die prompte Hilfe. Den sendmail_path hatte ich zwar schon eingestellt allerdings ohne die Anführungszeichen, möglicherweise eine Fehlerquelle. Leider funzt das ganze immer noch nicht, was vermutlich auch daran liegt, dass das PHP Script die in das Formular eingetragene E-Mail-Adresse als Absenderadresse hernimmt bzw. hernemen soll. Lässt sich das über sendmail überhautp so konfigurieren, dass das zugelassen wird?

Weiß leider nicht, wie die das bei Puretec auf den normalen Paketen gehandled haben, da allerdings hat es problemlos funktioniert.

Gibt es da irgendwas, was ich auf die Schnelle machen kann um das Ganze zu laufen zu kriegen?
Wie genau muss ich in diesem Fall sendmail konfigurieren?

@olfi:

Sicher OK, werd' das nächste Mal zweimal drüber nachdenken, ob ich meiner Frage mit einem solch bösen HILFE! noch einmal Nachdruck verleihen soll! :lol:


BTW, kann es eigentlich Nachteile mit sich bringen die max_execution_time in der PHP.ini rauf zu setzen. Musste das machen um eine Datenbank über PHPMyAdmin importieren zu können.

Grüße
popper2001

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-06-28 23:26

Sendmail lässt sich so konfigurieren, dass es funktioiniert :-), am besten du schaust dir mal das Maillog an, um das Prblem ein bissen einzugrenzen.

Mache einfach eine shell auf und führe ein tail -f /var/log/mail ( oder halt der Pfad, wo das Maillog liegt), dann versuchst du deine Mail über das Formular zu senden und schaust dir dann in der shell an, was passiert und poste es hier.

Wenn du bereits eine access table benutzt ( z.B. /etc/mail/access )
dann kannst du mit einem Eintrag

yourdomain.tld RELAY
localhost RELAY

das relayen erlauben. Nicht vergessen mit makemap hash /etc/mail/access < /etc/mail/access die ACCESS-Table neu aufzubauen und dein sendmail neu zu starten!!


Benutzt SMPT AUTH?

Da sendmail ein sehr komplexes Vieh ist, kann es tausend Gründe haben, warum es nicht macht was es soll.


Gruss

Marc

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Hi!

Post by popper2001 » 2003-06-29 21:19

Hab' es jetzt mal so gemacht, wie Du gesagt hast, allerdings musste ich feststellen, dass sich in dem Maillog nicht das geringste tut, wenn ich das Formular abschicke. Der Fehler scheint also noch irgendwo "vorher" zu liegen. Hab' nur leider nicht die geringste Ahnung, wo ich noch suchen soll... :cry:

Kann es sein, dass das Mail-Protokoll - da postfix Standard-Mailserver ist - gar keine sendmail Anzeigen enthält?

Hier noch ein Auszug aus der error_log:

Code: Select all

[Datum - Uhrzeit] [error] [client 217.***.***.***] attemp to invoke directory as script: /home/www/web1/html/cgi-bin
failed to open log file
fopen: Permission denied
[Datum - Uhrzeit] [error] [client 217.***.***.***] Permature end of script headers: /home/www/web1/html/cgi-bin/formmail.php
sh: line1: /usr/sbin/sendmail -t -i: No such file or directory
failed to open log file
fopen: Permission denied
Scheint wohl, als würde er sendmail nicht richtig finden, oder?

In der Puretec Ausgangsconfig ist nämlich der sendmail_path nicht eingetragen. Hatte es ja selbst schon geändert und dann nochmal (mit ' nach Deinem Post) und hab' danach Apache neu gestartet. Das sollte ja eigentlich ausreichen um die Config zu aktualisieren, oder?

Allerdings passiert immer noch gar nichts. Das PHP-Script scheint die mail() Funktion gar nicht erst auszuführen...

Hast Du da noch irgendeine Idee? Das seltsame ist ja gerade, dass das Formular-Mail-Script genau so in einem Premiumpaket bei Puretec optimal gelaufen ist.


Bin noch auf ein weiteres Problem gestoßen, nämlich Folgendes:

In der Standart-Config von 1&1 erstellt Confixx für jeden Kunden (webX) Unterverzeichnisse (darunter auch das Verzeichnis /html/ in dem später die Webseiten liegen!). In diesem HTML-Verzeichnis wird außerdem automatisch das Verzeichnis cgi-bin für jeden Benutzer erstellt. Legt man (ich) jetzt Dateien, wie beispielsweise einen Formmailer (Hab' jetzt um entgültig Auszuschließen, dass es ein Fehler im PHP-Script ist, einmal den Formmailer aus den 1&1 FAQ's genommen!) so bekommt man folgende Fehlermeldung beim Zugriff auf das Verzeichnis:

Code: Select all

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@*****.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

In der /var/log/access_log bekomme ich aber soetwas:

Code: Select all

[Datum - Uhrzeit] "GET /cgi-bin/index.php HTTP/1.1"
bzw. in der error_log

Code: Select all

[Datum - Uhrzeit] [error] [client 217.***.***.***] Permature end of script headers: /home/www/web1/html/cgi-bin/index.php

Kann irgendjemand vielleicht was damit anfangen oder hatte bereits das gleiche Problem?


Grüße!
popper2001
Last edited by popper2001 on 2003-06-30 23:53, edited 1 time in total.

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-06-29 23:53

Sieht so aus, als ob sendmail bei dir woanders installiert ist.

Mache mal ein:

which sendmail

oder

updatedb
locate bin/sendail

Der Pfad der dann erscheint, den musst du in die php.ini eintragen
Ausserdem musst du schauen, ob der Benutzer unter dem der Webserver läuft ( z.B. wwwrun:nogroup ) auch Rechte hat sendmail auszuführen.

kannst du testen mit:

ls -l <sendmail_path>/sendmail

o.

su -c "<sendmail_path>/sendmail -b -t" wwwrun

wenn es funzt, kann hat der die Rechte

Gruss

Marc

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Hi!

Post by popper2001 » 2003-06-30 19:53

Also

Code: Select all

which sendmail
und

Code: Select all

updatedb locate bin/sendail 
gibt mir genau den Pfad, den ich auch in der PHP.ini eingetragen habe, nämlich: "/usr/sbin/sendmail"!

Also l

Code: Select all

ls -l /usr/sbin/sendmail
gibt mir folgendes:

Code: Select all

-r-xr-xr-x   1 root      root          96672  Oct 14  2002  /usr/sbin/sendmail
Und

Code: Select all

su -c "/usr/sbin/sendmail -b -t" wwwrun 
gibt mir leider gar nichts aus.

Was kann denn das sein?

Grüße!
popper2001
Last edited by popper2001 on 2003-06-30 23:53, edited 1 time in total.

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-06-30 20:26

Also,
ich hätte besser hinsehen sollen :-(

Poste mal dein Skript, damit man sieht, was du da produzierst

Das maillog läuft über syslog in /etc/syslog.conf kannst du nachschauen, wo es hingeschrieben wird.

Gruss

Marc

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Huhu!

Post by popper2001 » 2003-06-30 23:51

Also hier erstmal das Script von 1&1, das ich sicherheitshalber mal verwendet habe, um eigene PHP-Fehler auszuschließen:

http://faq.puretec.de/skripte/php/2.html

Hab' erst versucht das script aus dem /html/ Verzeichnis eines webX Kunden auszuführen -> lief äußerlich problemlos (ohne Fehlermeldung!), allerdings kam die E-Mail nie an!

Danach hab' ich das Ding (was bei mir index.php hieß) mal in das automatisch von Confixx erstellte cgi-bin kopiert und da versucht es erneut auszuführen, worauf hin diese mysteriöse Fehlermeldung (s.o.) aufgetaucht ist; E-Mail-Versand wieder ohne Erfolg!

Warum bekomme ich denn immer noch Fehlermeldungen für den Sendmail-Path, wenn er doch genau richtig in der PHP.ini eingestellt ist??

Hab' jetzt grade nochmal nachgesehen:
Die Maillogs werden in die Datei /var/log/mail geschrieben.
Dort findet sich folgender Eintrag, wenn ich das Script ausführe:

Code: Select all

Jun 30 23:56:44 p****** postfix/pickup[16698]: 
3B22F34C037: uid=30 from=<wwwrun>
Jun 30 23:56:44 p****** postfix/cleanup[17279]: 
3B22F34C037: message-id=<20030630215644.3B22F34C037@p******.pureserver.info>
Jun 30 23:56:44 p****** postfix/qmgr[16699]: 
3B22F34C037: from=<wwwrun@p******.pureserver.info>, size=432, nrcpt=1 (queue active)
Jun 30 23:56:44 p****** postfix/local[17281]: 
3B22F34C037: to=<web6p2@p******.pureserver.info>, relay=local, delay=0, status=sent (mailbox)
Kannst Du damit was anfangen?

Grüße
popper2001

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Re: PHP sendmail auf 1&1 Root Server Start!

Post by popper2001 » 2003-07-01 00:41

Das E-Mail-Problem hat sich mittlerweile erledigt!

Gottseidank!!

Hab gefunden woran es lag, danke für die Hilfe!

Allerdings stehe ich immer noch vor dem Problem mit den cgi-bin Verzeichnissen und den mysteriösen Fehlermeldungen...

Hat da vielleicht irgendjemand eine Idee?

Grüße
popper2001

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-07-01 11:39

dein Skript versucht eine Datei zu öffnen, dass ein Verzeichniss ist und das geht natürlich un die Hose.

PHP Dateien müssen übrigens nicht ins CGI-BIN Verzeichniss

Gruss

MArc

Anonymous

Re: PHP sendmail auf 1&1 Root Server Start!

Post by Anonymous » 2003-07-01 11:43

hallo Popper2001
Das E-Mail-Problem hat sich mittlerweile erledigt!

Gottseidank!!
Ã?hmm, würdest du uns den auch verraten wo dein Problemm lag ?

Könnte mir evtl auch weiterhelfen,da ich genau das selbe Prob habe (auch 1&1-Root server)

Ich bekomme auch keine MAil´s per PHP raus :-(

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Re: PHP sendmail auf 1&1 Root Server Start!

Post by popper2001 » 2003-07-01 13:04

@squize:
dein Skript versucht eine Datei zu öffnen, dass ein Verzeichniss ist und das geht natürlich un die Hose.
Ja wie jetzt? Dem kann ich nicht so ganz folgen...kannst Du mir das ein bisschen genauer erklären. Das Script hat nämlich mittlerweile funktioniert.

Was das cgi-bin Problem angeht, so geht es mir ja gar nicht darum, dass ich die Scripte unbedingt in dieses Verzichnis legen will (das hab ich auch nicht gemacht!), sondern nur um diese seltsame Apache Fehlermeldung, beim Zugriff auf das Verzeichnis bzw. dessen Inhalt, die ich weiter oben schon mal gepostet hab'!

Kann mir nicht erklären, wo diese Meldung herkommt, nachdem sie ja schon von Anfang an (sprich auch ohne irgendwelche Veränderungen an der Puretec Standart-Konfiguration) aufgetaucht ist. Hat denn da niemand eine Idee?

@SkyMaster:

Erst mal "freut" es mich natürlich zu hören, dass ich mit meinem Problemchen nicht ganz alleine dasteh', war schon ziemlich resigniert - das baut auf (Wenn Du verstehst, was ich meine!) :lol: !

Was die Lösung des Problems angeht, so bin ich mehr oder weniger Zufällig bzw. durch Ausprobieren und squize's Hilfe drauf gestoßen.

Also erst mal solltest Du mit

Code: Select all

which sendmail
nachschauen, wo sendmail genau installiert ist. Den Pfad, bei mir ist es:

Code: Select all

/usr/sbin/sendmail
schreibst Du Dir auf, denn der muss genau so, wie er da steht, soll heißen ohne Anführungszeichen und ohne irgendwelche Parameter in Deine PHP.ini, die im /etc/ Verzeichnis liegt.

dort ergänzt Du dann einfach, falls noch nicht vorhanden die Zeile:

Code: Select all

sendmail_path = /usr/sbin/sendmail
Dann musst Du mit rcapache restart noch den Apache neu starten, damit er die Ã?nderungen überträgt.

Als dann solltest Du möglicherweile auf einer Shell die Log-Datei mail, die sich im Verzeichnis /var/log/ befindet mit folgendem Befehl "öffnen":

Code: Select all

tail -f mail
Dann versuchst Du Dein Script auszuführen und beobachtest, was sich währenddessen in der Maillog tut.

Mir hat genau dieser Weg aufgezeigt, wie "dumm" ich eigentlich bin. Bei mir lag das Problem (abgesehen von den falschen Pfadangaben) nämlich nur daran, dass einigee Domains bzw. deren MX Einträge noch nicht konnektiert sind, obwohl sie auf dem Server schon als Accounts erstellt sind und sich somit das intere und externe Mail-"Weiterleitungs"-Verhalten unterscheiden, da der Server natürlich die E-Mail-Adressen, die auf ihm liegen abfängt und gar nicht erst versucht, sie auf die externen (die ich blöderweise auch als einziges momentan abgefragt hab') weiterzuleiten.

Solltest Du also eine ähnliche Meldung wie ich,

Code: Select all

Jun 30 23:56:44 p****** postfix/pickup[16698]: 
3B22F34C037: uid=30 from=<wwwrun> 
Jun 30 23:56:44 p****** postfix/cleanup[17279]: 
3B22F34C037: message-id=<20030630215644.3B22F34C037@p******.pureserver.info> 
Jun 30 23:56:44 p****** postfix/qmgr[16699]: 
3B22F34C037: from=<wwwrun@p******.pureserver.info>, size=432, nrcpt=1 (queue active) 
Jun 30 23:56:44 p****** postfix/local[17281]: 
3B22F34C037: to=<web6p2@p******.pureserver.info>, relay=local, delay=0, status=sent (mailbox)
bekommen, dann funktioniert das PHP-Mail auf jeden Fall schonmal. Bei mir hat er die Mails dann eben auf das POP-Account web6p2 geschickt, wo ich sie dann auch schließlich gefunden habe.

Woran es sonst noch liegen könnte, weiß ich leider auch nicht. Hoffe, das hilft Dir weiter...!

Grüße
popper2001

Anonymous

Re: PHP sendmail auf 1&1 Root Server Start!

Post by Anonymous » 2003-07-01 13:29

Hallo

Leider scheind dieses Nicht mein Problemm zu sein :-(

OK, gestehe, in der PHP.ini war der Phat nicht eingetragen (nachgeholt)
Apache neu gestartet (restart) war auch erfolgreich)

Aber die Mail die per PHP gesendet werden sollen gehen nach wie vor nicht :-(

Die Log-Datei bleibt leider Lerr (kein Eintrag vorhanden :-(

An PHP-Script kann es aber devenetive auch nicht liegen, da er (wie mann es ja selbst kennt) auf den Profi-Packet von 1&1 ohne Problemme geht ......)

Schitt, durch den Fehler bekomme ich nun keine Meldunge mehr aus dem Forum :-( (geht ja alles per PHP)

NAch evtl fäält ja noch was ein ;-)

Gruß
SkyMaster

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-07-01 13:34

Jetzt mal eine kleine Erklärung.

Ihr müsst bedenken, dass um eure Fehler zu analysieren auch die, die mehr Ahnung haben vor allem eins brauchen, INFORMATION.

Es ist schon ein bissen nervig, wenn man euch alle Informationen aus der Nase ziehen muss, weil ihr im Prinzip

Also, wenn ihr ein Problem habt, dann versucht doch gleich beim ertsen Mal alle Informationen zu posten. Dazu gehören Logfiles, Fehlermeldungen und Setup des Systems.

Das die MAil Funktion von PHP nicht funktoniert kann tausend verschiedene Gründe haben, von falsch konfigutrierten MTA über falsche PHP-Einstellungen bis hin zu simplen Fehlern im Skript.

Also wenn ihr schon erwartetm, dass eure Probleme gelöst werden, dann macht euch wenigstens die Mühe alle Informationen zusammenzutragen

Gruss

Marc

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Re: PHP sendmail auf 1&1 Root Server Start!

Post by popper2001 » 2003-07-01 14:12

Welche SuSE Version hast Du denn? Also bei mir läuft schon die 8.1 mit postfix. Soweit ich weiß hatten Sie in der früheren Version 7.X (weiß nicht genau, welche sie vorher im Imag hatten) noch kein postfix drauf.

Du solltest vielleicht, wie squize gesagt hat, mal in der

Code: Select all

/etc/syslog.conf 
nachschauen, ob Dein Maillog wirklich auf den obigen Pfad läuft, wenn das Ding sonst leer ist...

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Re: PHP sendmail auf 1&1 Root Server Start!

Post by popper2001 » 2003-07-01 14:20

@squize:

OK, here we go:

Hab einen Puretec Server 1&1 Start mit SuSE Linux 8.1:

Code: Select all

Linux amdsim7 2.4.19 #1 Mon Oct 28 13:34:58 UTC 2002 i686 unknown
Des Weiteren läuft PHP 4.2.2 in folgender Config:

Code: Select all

'./configure' '--prefix=/usr/share' '--datadir=/usr/share/php' '--bindir=/usr/bin' '--libdir=/usr/share' '--includedir=/usr/include' '--with-_lib=lib' '--with-config-file-path=/etc' '--with-exec-dir=/usr/lib/php/bin' '--disable-debug' '--enable-bcmath' '--enable-calendar' '--enable-ctype' '--enable-dbase' '--enable-discard-path' '--enable-exif' '--enable-filepro' '--enable-force-cgi-redirect' '--enable-ftp' '--enable-gd-imgstrttf' '--enable-gd-native-ttf' '--enable-inline-optimization' '--enable-magic-quotes' '--enable-mbstr-enc-trans' '--enable-mbstring' '--enable-memory-limit' '--enable-safe-mode' '--enable-shmop' '--enable-sigchild' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-trans-sid' '--enable-versioning' '--enable-wddx' '--enable-yp' '--with-bz2' '--with-dom=/usr/include/libxml2' '--with-ftp' '--with-gdbm' '--with-gettext' '--with-gmp' '--with-imap=yes' '--with-iodbc' '--with-jpeg-dir=/usr' '--with-ldap=yes' '--with-mcal=/usr' '--with-mcrypt' '--with-mysql=/usr' '--with-ndbm' '--with-pgsql=/usr' '--with-png-dir=/usr' '--with-qtdom=/usr/lib/qt2' '--with-snmp' '--with-t1lib' '--with-tiff-dir=/usr' '--with-ttf' '--with-freetype-dir=yes' '--with-xml' '--with-xpm-dir=/usr/X11R6' '--with-zlib=yes' '--with-gd=shared' '--with-openssl' '--with-curl' '--with-swf=./dist/' '--with-imap-ssl' '--enable-xslt' '--with-xslt-sablot' '--with-mm' '--with-apxs=/usr/sbin/apxs' 'i586-suse-linux'
Außerdem Apache 1.3.26 und MySQL 3.23.52 mit folgenden Modulen (Apache)

Code: Select all

mod_ssl, mod_php4, mod_setenvif, mod_so, mod_unique_id, mod_usertrack, mod_headers, mod_expires, mod_cern_meta, mod_proxy, mod_digest, mod_auth_db, mod_auth_dbm, mod_auth_anon, mod_auth, mod_access, mod_rewrite, mod_alias, mod_speling, mod_actions, mod_imap, mod_asis, mod_cgi, mod_dir, mod_autoindex, mod_include, mod_info, mod_status, mod_negotiation, mod_mime, mod_mime_magic, mod_log_referer, mod_log_agent, mod_log_config, mod_define, mod_env, mod_vhost_alias, mod_mmap_static, http_core
Was ich als Fehlermeldung bekomme, wenn ich das cgi-bin aufrufe, weißt Du (s.o.) und der Auszug aus der error_log taucht oben auch schon irgenwo auf.

Ist das jetzt besser und soll ich noch irgednwas posten?

Grüße
popper2001

Anonymous

Re: PHP sendmail auf 1&1 Root Server Start!

Post by Anonymous » 2003-07-01 14:54

@squize
Ohne nun gemein zu sein !

Was soll ich noch posten ?

Ich habe geschrieben das das:
1)das Script nachweislich 100% ok ist !
2)Der eintrag in der php.ini auch gemacht ist (phat) oder wilst du die Komplette ini ?)
3) beim ausführen wir NIX (auch schon geschrieben) nicht im Log festgehalten wird :-(

OK was soll ich noch mehr posten wenn nix da ist ?!?!?

@popper2001

habe selbiges (so wie server so wie problemm :D:D)

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Re: PHP sendmail auf 1&1 Root Server Start!

Post by popper2001 » 2003-07-01 15:37

@SkyMaster:

Hast Du mal in der syslog.conf nachgeschuat, wo Dein Maillog hingespeichert wird?

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-07-01 15:54

Also damit wir am Ende rausdbekommen, dass wirklich alles okay ist, macht bitte mal folgendes:

legt irgendwo in eurem documentroot eine Datei mailertest.php an und schriebt folgendes hinein

Code: Select all

<?PHP
  //Wird vom Formular ausgefuellt
  $email_to = "$name_freund <$email_freund>"; 
  //Absender-Email
  $email_from_mail = $email_freund; 
  //Absender-Name
  $email_from_name = "Mailertest"; 
  //Betreff in der Mail
  $email_betreff = "Mailertest";
  //BCC
  //  $email_to_bcc = "";
?>

<html><head> 
<title>Mailertest</title> 
</head>
<body bgcolor="#FFFFFF"> 
<h4>Mailertest</h4> 
<?php 
if(!isset($email_freund)){ 
?>
<form action="mailtest.php" method="post"> 
<table width="58%" border="0" cellspacing="2" cellpadding="0">
  <tr>
    <td width="15%" valign="top">
      Name/Freund:
    </td>
    <td width="85%"> 
      <input type="text" name="name_freund">
    </td>
  </tr>
  <tr>
    <td width="15%" valign="top">
      Email/Freund:
    </td>
    <td width="85%"> 
      <input type="text" name="email_freund">
    </td>
  </tr>
  <tr>
    <td width="15%" valign="top">
      Kommentar:
    </td>
    <td width="85%"> 
      <textarea cols="30" rows="6" name="kommentar"></textarea>
    </td>
  </tr>
  <tr>
    <td width="15%" valign="top">&</td>
    <td width="85%"> 
      <input type="submit" value="HTML-Mail senden" name="submit">
    </td>
  </tr>
</table>
</form> 

<?php 
} 
else{ 
  $emailbody = 'Dies ist eine Testmail';
  $header="From:$email_from_name<$email_from_mail>rn";
  $header .= "Reply-To: $email_from_mailrn"; 
  $header .= "Bcc: $email_to_bccrn"; 
  $header .= "X-Mailer: PHP/" . phpversion(). "rn";          
  $header .= "X-Sender-IP: $REMOTE_ADDRrn"; 
  $header .= "Content-Type: text/html"; 
  if (mail($email_to,$email_betreff,$emailbody,$header)) {
      echo "<p>Sende Email nach: $email_freund<br>"; 
  }  
  else { echo "<p>Sending Mail failed</p>"; } 
} 
?> 
</body> 
</html>
Dann ruft ihr die Seite auf ( http://<yourdomain>.tld/mailertest.php ) setzt eure Email addresse rein und jagt es los. Danach sagt ihr mir, was passiert ist. Zum Syslog, was steht den in der Syslog.conf beim Eintrag mail.xxxxxx?

Gruss

Marc

Anonymous

Re: PHP sendmail auf 1&1 Root Server Start!

Post by Anonymous » 2003-07-01 16:19

Also wenn ich dein Script aufruffe kann ich die Daten einfügen,
aber bei absenden heist es :

Mailertest
Sending Mail failed


Was die Syslog.conf angeht
Dort steht : (mehrer Einträge gefunden)
#
# all email-messages in one file
#
mail.* -/var/log/mail
#
# save the rest in one file
#
*.*;mail.none;news.none -/var/log/messages
PS. Die MAil werden auch gelogt (die normalen) nur halt wenn ich was über PHP aufrufe, dann wird anscheinend Nix gelogt :-(

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-07-01 16:56

Aha,
also sind wir soweit zu wissen, dass deine Mailfunktion von PHP nicht funzt.
Da gibt es jetzt mehrere Gründe.
Welchen MTA benutzt du, dürfen nicht authentifizierte User relayen?
Stimmt die Konfiguration in php.ini?
(Bitte nicht glauben, sondern nachschauen :-) )

Wenn du SMTP Auth benutzt, dann geht es natürlich nicht und du musst eine Mailklasse benutzen, die es dir erlaubt, z.B. phpmailer ( sehr gut ).

Zweiter Weg ist natürlich deinen MTA dazu zu bringen, injected Mails von localhost zu relayen. Wie das zu machen ist hängt wieder von deinem MTA ab, bei Postfix werden alle Rechner aus my_networks relayed also z.B.

my_networks = 127.0.0.18

Das nichts geloggt wird, lässt darauf schliesen, dass es erst gar nicht dazu kommt, dass also schon der Aufruf von sendmail_path ( php.ini ) in die Hose geht.
Du solltest also schauen, ob es unter /usr/sbin ( oder der Pfad, der bei dir in php.ini steht) wirklich ein sendmail gibt.

Das habe ich noch gefunden
Thanks for the suggestions. I did update php.ini to point to
/usr/sbin/sendmail.postfix, which is the postfix wrapper
for sendmail compatibility. PHP mail() can send email
to local accounts, but not outside the server. But then
the mail utility at the Linux command prompt has the same
limitation, so I think it has something to do with that and
not the PHP config. It probably is a postfix config problem.

Gruss

Marc

popper2001
Posts: 35
Joined: 2003-06-28 19:07

Re: PHP sendmail auf 1&1 Root Server Start!

Post by popper2001 » 2003-07-01 17:15

@squize:

Hab' da auch grade noch ein kleines Problem festgestellt, als ich Deine mailtest.php mal drüber gejagd hab':

Wenn ich als Empfänger eine E-Mail auf dem Server angebe, wird die Nachricht sofort übermittlelt (delay=0 im maillog).

Gebe ich zum Beispiel eine hotmail Adresse an, wird die Nachricht nicht verschickt (Queued mail for delivery - delay=1,2,..).

Wenn ich den von Dir zitierten Eintrag umsetze und den sendmail_path in /usr/sbin/sendmail.postfix ändere, kann ich gar keine Mails mehr über PHP mail() versenden!

Was kann ich denn dagegen machen?

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: PHP sendmail auf 1&1 Root Server Start!

Post by squize » 2003-07-01 17:43

Wenn du mails an lokale Accounts verschicken kannst, dann war die php conf richtig :-D :-D

Das verschicken an externe Accounts ( relayen ) scheint also nicht zu funktionieren. Die Frage ist jetzt natürlich warum.
kannst du einträge im Maillog finden, die dir sagen "relaying denied" o. "relaying forbidden" oder so ähnlich.
Wenn die Mails nicht zugestellt werden, dann steht normalerweise auch der Grund im log ( Relaying denied. Proper authentication required. oder
Domain of sender domain.tld does not exist ).
Queued heisst ja erst einmal, dass die Mail in die Queue für outgoing Mails verschoben wird. Dies ist ja erst einmal kein Fehler, die Frage ist nur, ob sie dann auch verschickt wird.


Wie sieht es den mit DNS auf deiner Kiste aus?

kannst du ein nslookup für die Domains machen, zu denen du die Mails schicken wolltest?

Gruss

Marc