PDA

Bekijk Volledige Versie : Sendmail werkt niet met PHP



Web123.nl
23/02/03, 21:39
Ik heb op dit moment een testsysteem opgezet met daarop o.a. apache, mysql, php, enz. Voor het ontvangen en versturen van mail gebruik ik standaard sendmail. Dit werkt prima, e-mail kan op de server worden ontvangen en in pop3-boxen worden geplaatst of worden doorgestuurd naar andere e-mailaccounts (zegmaar mailforwarding).

Echter krijg ik constant vreemde fouten met sendmail als ik via PHP mail probeer te versturen. Ik kom er echt niet meer uit en vroeg me af of iemand wat weet:



--------------------------------------------------------------------------------
Feb 23 21:26:12 s001 sm-mta[96855]: starting daemon (8.12.7): SMTP+queueing@00:30:00
Feb 23 21:26:12 s001 sm-msp-queue[96858]: starting daemon (8.12.7): queueing@00:30:00
Feb 23 21:26:28 s001 sendmail[96862]: h1NKQRM3096862: from=nobody, size=111, class=0, nrcpts=1, msgid=<200302232026.h1NKQRM3096862@s001.web123.nl>, relay=nobody@localhost
Feb 23 21:27:54 s001 sendmail[96862]: h1NKQRM3096862: to=info@rudiweb.nl, ctladdr=nobody (65534/65534), delay=00:01:27, xdelay=00:01:26, mailer=relay, pri=30092, relay=localhost.web123.nl. [212.204.208.123], dsn=5.0.0, stat=Service unavailable
Feb 23 21:27:54 s001 sendmail[96862]: h1NKQRM3096862: h1NKQRM4096862: DSN: Service unavailable
Feb 23 21:28:04 s001 sendmail[96862]: h1NKQRM4096862: to=nobody, delay=00:00:10, xdelay=00:00:10, mailer=relay, pri=31135, relay=localhost.web123.nl. [212.204.208.123], dsn=5.0.0, stat=Service unavailable
Feb 23 21:28:04 s001 sendmail[96862]: h1NKQRM4096862: h1NKQRM5096862: return to sender: Service unavailable
Feb 23 21:28:14 s001 sendmail[96862]: h1NKQRM5096862: to=postmaster, delay=00:00:10, xdelay=00:00:10, mailer=relay, pri=32159, relay=localhost.web123.nl. [212.204.208.123], dsn=5.0.0, stat=Service unavailable
Feb 23 21:28:14 s001 sendmail[96862]: h1NKQRM4096862: Losing ./qfh1NKQRM4096862: savemail panic
Feb 23 21:28:14 s001 sendmail[96862]: h1NKQRM4096862: SYSERR(nobody): savemail: cannot save rejected email anywhere

--------------------------------------------------------------------------------



Ik heb het volgende probleem zelf al oplost, maar bovenstaande kom ik niet uit:
Foutmelding: "Feb 23 21:05:35 s001 sendmail[96456]: NOQUEUE: SYSERR(nobody): can not chdir(/var/spool/clientmqueue/): Permission denied"
Oplossing:
cd /usr/sbin/
chown root:smmsp sendmail

Web123.nl
23/02/03, 21:41
Ter info: uiteindelijk na een seconde of 30 wordt de php pagina WEL geladen en het bericht alsnog verstuurd. Maar mij is geheel onduidelijk hoe dat komt.

Deimos
23/02/03, 21:47
zoals ik de error meldingen nu lees, heeft of sendmail geen permissie om een mailqueu aan te maken of bestaat deze in zijn geheel niet (de dir dan wel de queu zelf).

Probeer eens met mutt of iets dergelijks mail te sturen of gewoon met het mail commando vanaf de commandline.

Web123.nl
23/02/03, 21:58
root@s001.web123.nl:/etc/mail# mail info@rudiweb.nl
Subject: Test
Zomaar een testje
EOT

Feb 23 21:54:08 s001 sendmail[97582]: h1NKs8ZI097582: from=rudi, size=53, class=0, nrcpts=1, msgid=<200302232054.h1NKs8ZI097582@s001.web123.nl>, relay=root@localhost
Feb 23 21:55:35 s001 sendmail[97582]: h1NKs8ZI097582: to=info@rudiweb.nl, ctladdr=rudi (1001/1001), delay=00:01:27, xdelay=00:01:27, mailer=relay, pri=30035, relay=localhost.web123.nl. [212.204.208.123], dsn=5.0.0, stat=Service unavailable
Feb 23 21:55:35 s001 sendmail[97582]: h1NKs8ZI097582: h1NKs8ZJ097582: DSN: Service unavailable
Feb 23 21:55:45 s001 sendmail[97582]: h1NKs8ZJ097582: to=rudi, delay=00:00:10, xdelay=00:00:10, mailer=relay, pri=31077, relay=localhost.web123.nl. [212.204.208.123], dsn=5.0.0, stat=Service unavailable
Feb 23 21:55:45 s001 sendmail[97582]: h1NKs8ZJ097582: h1NKs8ZK097582: return to sender: Service unavailable
Feb 23 21:55:55 s001 sendmail[97582]: h1NKs8ZK097582: to=postmaster, delay=00:00:10, xdelay=00:00:10, mailer=relay, pri=32101, relay=localhost.web123.nl. [212.204.208.123], dsn=5.0.0, stat=Service unavailable
Feb 23 21:55:55 s001 sendmail[97582]: h1NKs8ZJ097582: Losing ./qfh1NKs8ZJ097582: savemail panic
Feb 23 21:55:55 s001 sendmail[97582]: h1NKs8ZJ097582: SYSERR(root): savemail: cannot save rejected email anywhere



Dit lijkt ook niet goed te gaan...

Deimos
23/02/03, 22:04
kan je misschien je sendmail.cnf posten?

Web123.nl
23/02/03, 22:06
Weet je het zeker?
Dat ding is mega lang!

Ik maak 'm wel beschikbaar via het web:
http://s001.web123.nl/sendmail.cf

Web123.nl
28/02/03, 07:09
Onze systeembeheerder stelt voor om het programma postfix te gaan gebruiken om dit probleem te omzeilen. Ik ken het programma niet.

Kan iemand hier iets meer over zeggen?

Deimos
28/02/03, 09:38
Postfix is een goede MTA, welke door veel ISP's wordt gebruikt. Veel meer kan ik er helaas niet over zeggen.

Web123.nl
03/03/03, 21:55
Het probleem van deze vage foutmeldingen is inmiddels opgelost. Onze systeembeheerder kon het volgende melden:


ik heb er weinig meer aan veranderd...
nog even de service gerehashed zegmaar, maar meer niet.


Wellicht dat een resetje van sendmail ook wonderen gedaan had. Maar helaas moet ik het antwoord schuldig blijven OF en WAT de klapper was om dit probleem op te lossen

Echter nu is er een ander probleem ontstaan:
Een mail wordt via PHP verstuurd, sendmail ontvangt deze netjes volgens maillog, maar de mail wordt pas na ruim een minuut uitgestuurd. Hierdoor blijft PHP ook op een bevestiging van de functie mail() wachen en wordt pas na het versturen van de mail door sendmail een 'true' gestuurd naar het PHP script wat dan pas verder gaat:

maillog:


Mar 3 21:47:24 s001 sendmail[64756]: h23KlOLF064756: from=nobody, size=115, class=0, nrcpts=1, msgid=<200303032047.h23KlOLF064756@s001.web123.nl>, relay=nobody@localhost
Mar 3 21:47:24 s001 sendmail[64756]: h23KlOLF064756: to=thehunter@chello.nl, delay=00:00:00, mailer=relay, pri=30096, stat=queued
Mar 3 21:48:40 s001 sm-mta[64792]: h23KmeDI064792: from=<nobody@s001.web123.nl>, size=348, class=0, nrcpts=1, msgid=<200303032047.h23KlOLF064756@s001.web123.nl>, proto=ESMTP, daemon=MTA, relay=smmsp@localhost [127.0.0.1]
Mar 3 21:48:40 s001 sm-msp-queue[64757]: h23KlOLF064756: to=thehunter@chello.nl, ctladdr=nobody (65534/65534), delay=00:01:16, xdelay=00:01:15, mailer=relay, pri=120096, relay=localhost.my.domain. [127.0.0.1], dsn=2.0.0, stat=Sent (h23KmeDI064792 Message accepted for delivery)
Mar 3 21:48:40 s001 sm-mta[64796]: h23KmeDI064792: to=<thehunter@chello.nl>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=30329, relay=smtp.chello.nl. [213.46.243.2], dsn=2.0.0, stat=Sent (Message received: 20030303205115.UTCO9305.amsfep11-int.chello.nl@s001.web123.nl)


Voor dit probleem heb ik een workarround gemaakt, zodat PHP tenminste verder gaat:

In de php.ini sendmail_path aangepast:
sendmail_path = "/usr/sbin/sendmail -t -i -O DeliveryMode=q"

Dit zorgt ervoor dat een bericht in de mailqueue komt, hiermee krijgt PHP gelijk een 'true' terug en kan het PHP-script verder draaien.

Om sendmail dan de queue snel te laten legen heb ik dit aangepast:

/etc/defaults/rc.conf:


#sendmail_msp_queue_flags="-L sm-msp-queue -Ac -q30m" <-- DEZE REGEL UITGEZET
sendmail_msp_queue_flags="-L sm-msp-queue -Ac -q5s" <-- DEZE REGEL op 5s gezet


Dit werkt prima. De mail wordt nog steeds met een vertraging verstuurd zoals boven, maar het PHP-script kan gewoon verder draaien.

Toch wil ik graag dit probleem alsnog goed oplossen, vandaar mijn berichtje uiteraard.

Ik heb ook nog gekeken in de resolv.conf, maar dat lijkt ook in orde. (immers werkt een resolv met bijvoorbeeld nslookup binnen een seconde). Goed.. als iemand tips heeft, hoor ik het graag.

Voorals nog geen postfix geinstalleerd dus.