mail() functie werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 11:23:00
Quote Anchor link
Ik heb nu PHP 5 op een Fedora Core 5 server. Nu ben ik een beetje aan het ontwikkelen en gebruik ik de mail()-functie. Alleen deze verstuurd geen mail. Tenminste, niet als ik het script uitvoer door middel van een request vanuit een browser.

Als ik echter inlog via SSH en op de CLI van Fedora het command php /path/naar/testbestand.php doe werkt de mail()-functie wel.

In de PHP.ini (waar ik er maar 1 van heb, dus niet twee verschillende zoals php.ini en php-cgi.ini) staat de correcte path naar sendmail (gewoon default).

Iemand enig idee waar dit aan kan liggen?

TIA!
Elwin
 
PHP hulp

PHP hulp

16/11/2024 19:49:59
 
Wout van der Burg

Wout van der Burg

12/05/2006 12:34:00
Quote Anchor link
ligt het niet aan je script?
laat hem anders even zien
 
Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 12:47:00
Quote Anchor link
Het ligt vanzelfsprekend niet aan het script, aangezien die vanaf de CLI wel werkt. Maar goed:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(!mail("[email protected]","test","bericht","From: \"Naam\" <[email protected]>\r\n")) exit("Fout bij het mailen");
?>


De uitvoer aangesproken met de browser is: Fout bij het mailen
De uitvoer via de CLI is niets, oftewel script is volledig uitgevoerd zonder output, wat ook klopt. In dit geval krijg ik ook het bericht binnen.

Elwin
 
- SanThe -

- SanThe -

12/05/2006 13:15:00
Quote Anchor link
Je draait Apache op dezelfde server? Kan Apache wel bij het mailprogramma komen? Normaal hoef je niks te veranderen in php.ini wat betreft het emailpath.
 
Wout van der Burg

Wout van der Burg

12/05/2006 13:20:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(!mail("[email protected]","test","bericht","From: Naam <[email protected]>\r\n")) exit("Fout bij het mailen");
?>


volgens dit;
http://nl3.php.net/manual/nl/function.mail.php

hoeft \"naam\" niet tussen quotes..

anders zou ik het ook niet weten, want ik heb neit al te veel verstand van Linux :) ik ken alleen de basis zeg maar
 
Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 13:21:00
Quote Anchor link
@SanThe
Hoe bedoel je "kan Apache wel bij het mailprogramma komen"?

In phpinfo() zie ik netjes de correcte path van sendmail.

Elwin
 
Erik Rijk

Erik Rijk

12/05/2006 13:22:00
Quote Anchor link
het is ook geen linux maar php Geert ;)
 
Jelmer -

Jelmer -

12/05/2006 13:29:00
Quote Anchor link
wat SanThe denk ik bedoelt is:
Kan de gebruiker waaronder Apache draait, bij mij www-data (debian, zie voor jouw bijv. 'ps -elf') wel bij het sendmail programma en kan deze dan op zijn beurt volledig zonder fouten de mail 'versturen'?

Want dat is in weze het enige verschil. Jij voert PHP onder jouw gebruiker uit, Apache onder zijn gebruiker.
 
Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 13:29:00
Quote Anchor link
@Geert
Maakt helaas geen verschil. Ik had het namelijk eerder al getest zonder de header (4e parameter).

Elwin
 
Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 13:32:00
Quote Anchor link
@Jelmer
Ja, daar had ik het hier ook net over. Bij mij draait Apache onder goup apache en user apache. Ik heb apache als trusted user aangemaakt in de sendmail configuratie en sendmail opnikeuw gestart.

Helaas geen resultaat.

Is er trouwens geen logfile van sendmail waarin de connecties worden bijgehouden?

Elwin
 
- SanThe -

- SanThe -

12/05/2006 13:34:00
Quote Anchor link
Als Apache b.v. in een jail draait kan ie never nooit bij sendmail komen.
Kijk eens met 'ps au' hoe Apache draait.

Voorbeeld van Apache in een jail ziet er zo uit.
5523 ?? Is 0:15.17 httpd: parent [chroot /var/www] (httpd)
 
Wout van der Burg

Wout van der Burg

12/05/2006 13:34:00
Quote Anchor link
Erik:
het is ook geen linux maar php Geert ;)


ja ik weet niet of de installatie van PHP verschil maakt op de besturingssystemen, dus ik bedoel dan de PHP.ini etc..
 
Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 13:40:00
Quote Anchor link
@SanThe
Dit zegt me allemaal vrij weinig. Wat is een jail precies? (never mind, ik ga zo wel ff naar Google) Met 'ps au' heb ik niets van Apache volgens mij. Hier de volledige output:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@xinix ~]# ps au
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2085  0.0  0.1   1584   408 tty1     Ss+  May11   0:00 /sbin/mingetty tty1
root      2086  0.0  0.1   1588   416 tty2     Ss+  May11   0:00 /sbin/mingetty tty2
root      2087  0.0  0.1   1588   416 tty3     Ss+  May11   0:00 /sbin/mingetty tty3
root      2088  0.0  0.1   1584   412 tty4     Ss+  May11   0:00 /sbin/mingetty tty4
root      2089  0.0  0.1   1588   416 tty5     Ss+  May11   0:00 /sbin/mingetty tty5
root      2090  0.0  0.1   1588   412 tty6     Ss+  May11   0:00 /sbin/mingetty tty6
root      2206  0.0  1.3  11988  5132 tty7     Ss+  May11   0:01 /usr/bin/Xorg :0 -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt7
root     14478  0.0  0.4   4452  1480 pts/1    Ss   13:17   0:00 -bash
root     14538  0.0  0.3   4444  1456 pts/2    Ss   13:23   0:00 -bash
root     14657  0.4  0.6   6640  2276 pts/1    S+   13:33   0:00 /usr/bin/mc -P /tmp/mc-root/mc.pwd.14478
root     14659  0.0  0.3   4452  1468 pts/3    Ss+  13:33   0:00 bash -rcfile .bashrc
root     14694  0.0  0.2   4184   968 pts/2    R+   13:34   0:00 ps au


Als ik dat command van Jelmer doe ('ps -elf') dan heb ik meerder regels met Apache. Allemaal als volgt met een ander process id:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
5 S apache   14328     1  0  76   0 -  6805 359737 12:52 ?        00:00:00 /usr/sbin/httpd
5 S apache   14329     1  0  76   0 -  6805 359737 12:52 ?        00:00:00 /usr/sbin/httpd


Elwin
 
- SanThe -

- SanThe -

12/05/2006 13:55:00
Quote Anchor link
Ik denk dat het wel goed is. Er staat in ieder geval geen [chroot /var/www] bij en dat geeft aan dat ie in een jail draait.

Quote:
Als ik echter inlog via SSH en op de CLI van Fedora het command php /path/naar/testbestand.php doe werkt de mail()-functie wel.

Als je in het testbestand iets laat echoën krijg je dat dan op het scherm te zien?
 
Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 13:59:00
Quote Anchor link
Jup.. ik heb er even een else onder gegooid. Daarin een echo "Goed verzonden";

En die krijg ik te zien.

Elwin
 
- SanThe -

- SanThe -

12/05/2006 14:05:00
Quote Anchor link
En als je nu de logfile van sendmail bekijkt en je mailt vanaf je site geeft ie dan een melding in de log of is er helemaal niks te zien.
 
Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 14:13:00
Quote Anchor link
De logfile blijft helemaal leeg.

Elwin
 
Elwin - Fratsloos

Elwin - Fratsloos

12/05/2006 21:09:00
Quote Anchor link
Iemand van de avondploeg die een oplossing weet? :)

Elwin
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.