Toon posts:

[PHP] Mailform geeft geen error, maar verstuurd geen mail *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste webscripters, vandaag weer een ander probleem. Als ik er echt niet zelf uitkom dan post ik op GOT. Vandaag is het weer zo'n dag :)

code:
1
2
3
4
5
6
7
IF (mail("adres@adres.nl",$sub, $mes, $headers))

{
    
    echo "Mail is verstuurd !";

}


Hierboven kun je zien dat er een voorwaarde aan verbonden is met het bericht dat de mail verstuurd is. Mail is verstuurd zal er dus alleen staan als de mail volgens het script ook verstuurd is. Dit IS bij mij het geval. Alleen komt er op het adres wat ik normaal invul NIKS binnen ?

Heeft iemand hier enig idee waar dit aan zou kunnen liggen ?

A.U.B helpt u mij hiermee _/-\o_ want ik weet het ECHT niet meer.

  • Xandrios
  • Registratie: Februari 2001
  • Laatst online: 16:17
Is de mail goed geconfigged in je php.ini ?

Verwijderd

Topicstarter
Xandrios schreef op 04 juli 2004 @ 12:50:
Is de mail goed geconfigged in je php.ini ?
Daar heb je een punt :). Ik heb gelezen dat je met ini_set wel iets kan, zou je me kunnen vertellen wat ik moet veranderen in de ini file ? Want het MOET eigenlijk wel aan die ini file liggen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:34

gorgi_19

Kruimeltjes zijn weer op :9

Zie P&W FAQ - Installatie c.q. SA vragen.

Ik betwijfel sterk of het probleem aan de code ligt, maar eerder aan de configuratie. En daar weten ze in Software Algemeen meer van af. :)

* gorgi_19 zwaait het topic naar Software Algemeen

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Owja, ik was nog vergeten te vemelden dat het om een linux server gaat.

Verwijderd

Topicstarter
Kan het mischien hier mee te maken hebben ?

;sendmail_path =

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 10:21
Jep, je moet het commentaar tekentje even weghalen en het pad naar de binary van je mailserver daar neerzetten. Met evt. opties die nodig zijn. Heb je wel al een mailserver draaien?

Verwijderd

Topicstarter
Mac_Cain13 schreef op 04 juli 2004 @ 13:03:
Jep, je moet het commentaar tekentje even weghalen en het pad naar de binary van je mailserver daar neerzetten. Met evt. opties die nodig zijn. Heb je wel al een mailserver draaien?
Bedankt voor je uitleg, alleen weet ik echt helemaal niks van Linux :)

Het path naar de binary moet standaard zijn = ''? ???

[ Voor 6% gewijzigd door Verwijderd op 04-07-2004 13:06 ]


  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 10:21
Er is niet echt een standaard pad, je zult eerst moeten zorgen dat er een mailserver draait. Afhankelijk van welke mailserver je draait kun je het pad instellen. Je zult je dus eerst een beetje in mailservers moeten verdiepen. Als je het lekker simpel wilt houden en gewoon mail wilt kunnen versturen zou ik je ssmtp willen adviseren. Die is zeer makkelijk te configureren en heb je zo draaien.

Het ligt aan je distro hoe je het moet installeren. Bij Debian of ArchLinux kan je gewoon de package manager gebruiken en bij RedHat is het alleen ff de RPM downen en installen. Daarna de configuratie file invullen natuurlijk en je hebt ssmtp draaien. :)

[ Voor 5% gewijzigd door Mac_Cain13 op 04-07-2004 13:10 ]


Verwijderd

Topicstarter
Mac_Cain13 schreef op 04 juli 2004 @ 13:09:
Er is niet echt een standaard pad, je zult eerst moeten zorgen dat er een mailserver draait. Afhangkelijk van welke mailserver je draait kun je het pad instellen. Je zult je dus eerst een beetje in mailservers moeten verdieppen. Als je het lekker simpel wilt houden en gewoon mail wilt kunnen versturen zou ik even naar ssmtp kijken. Die is zeer makkelijk te configureren en heb je zo draaien.
Er draait een mailserver op. Via Webmin (een programma waarmee je je server op afstand bediend) kan ik ook iets van sendmail instellen. Maar zit ik daar wel goed ?
Ik draait op deze distributie -debian dacht ik- en standaard een mailserver.

Heb je mischien enig idee in welke -hoek- ik ongeveer moet kijken ?

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 10:21
Als je sendmail draait of een mailserver die sendmail simulatie heeft kun je die binary gebruiken. Bij mij staat de sendmail binary in /usr/sbin. Je kan met 'locate sendmail' even zoeken waar jou binary staat. Of er op gokken dat ie bij jou ook in /usr/sbin staat. ;)
Je moet de opties -t en -i meegeven om PHP goed met sendmail te kunnen laten werken. Als je mailserver goed geconfigt is kun je dus gewoon je php.ini aanpassen met iets wat lijkt op dit:
code:
1
sendmail_path = /usr/sbin/sendmail -t -i


Dan zou de mail functie moeten werken.

Verwijderd

Topicstarter
Mac_Cain13 schreef op 04 juli 2004 @ 13:19:
Als je sendmail draait of een mailserver die sendmail simulatie heeft kun je die binary gebruiken. Bij mij staat de sendmail binary in /usr/sbin. Je kan met 'locate sendmail' even zoeken waar jou binary staat. Of er op gokken dat ie bij jou ook in /usr/sbin staat. ;)
Je moet de opties -t en -i meegeven om PHP goed met sendmail te kunnen laten werken. Als je mailserver goed geconfigt is kun je dus gewoon je php.ini aanpassen met iets wat lijkt op dit:
code:
1
sendmail_path = /usr/sbin/sendmail -t -i


Dan zou de mail functie moeten werken.
Ik ga het proberen :)

Locate sendmail geeft heeel veel opties waaronder deze : "/usr/sbin/sendmail"
is het deze ?

[ Voor 8% gewijzigd door Verwijderd op 04-07-2004 13:24 ]


Verwijderd

Topicstarter
Ik ben een stap verder. ik heb het path gevonden....

Maar nu de juiste php.ini file nog, het zijn er nog al wat.

/etc/php.ini
/usr/share/doc/libphp_common432-4.3.3/php.ini-recommended
/usr/share/doc/libphp_common432-4.3.3/php.ini-dist
/usr/local/src/php/php.ini-dist
/usr/local/src/php/php.ini-recommended
/usr/local/src/php/pear/tests/php.ini

Welke ini file moet ik aanpassen. En moet ik dan mijn webserver restarten ?

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 10:21
Je php.ini file die je moet aanpassen is hoogswaarschijnlijk /etc/php.ini en 90% kans dat /usr/sbin/sendmail het goede pad is.

Je webserver herstarten; geen idee of dat verplicht is, maar het kan geen kwaad. Als het niet werkt zo en zo ff herstarten.
offtopic:
Btw, met een btje logisch redeneren kun je er zelf ook achter komen welke ini je moet hebben. In /usr/local/src staat over het algemeen source (src), dat moet je niet hebben. /usr/share/doc/ is voor documentatie dingen, ook niet van toepassing en in /etc staan heel veel config files. Dus die is het waarschijnlijk :)

  • Xandrios
  • Registratie: Februari 2001
  • Laatst online: 16:17
De bovenste :)

En idd even je webserver restarten: service httpd restart :)

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Xandrios schreef op 04 juli 2004 @ 13:31:
De bovenste :)

En idd even je webserver restarten: service httpd restart :)
Ik weet niet of de 'service' functionaliteit ook in debian is ingebakken; maar wat altijd werkt is
apachectl restart
:)

edit:
G33rt: de ampersand is niet nodig hoor; de daemon draait standaard in de background :)

[ Voor 15% gewijzigd door Spider.007 op 04-07-2004 13:35 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Of 'apachectl restart &' als je hem als daemon draait geloof ik

Spider.007, ga weg! :'(

edit:
weet je dat zeker? ik doe voor de zekerheid altijd een &, het kan sowieso geen kwaad :)

[ Voor 69% gewijzigd door G33rt op 04-07-2004 13:37 ]


Verwijderd

Topicstarter
INI file aangepast

MAAR HELP !!!

service httpd stop:

> service httpd restart
Starting httpd2: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

Help wat is er fout gegaan.

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 10:21
Address already in use
Het lijkt erop dat je apache niet juist is afgesloten. Er luisterd nog een progje op poort 80 dus kan apache die poort niet claimen. Probeer hem nog eens te stoppen en dan weer te starten. Je moet iig er voor zorgen dat alle httpd processen omgelegt zijn.

Verwijderd

Topicstarter
> service httpd stop
> service httpd start
Starting httpd2: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

Hij blijft deze fout geven.

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
code:
1
killall -HUP inetd

zou volgens mij ook moeten werken als je apache als service draait.

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 10:21
Probeer je apache eens te stoppen en kijk dan met 'netstat -ntpl' of er nog iets op poort 80 luistert en zo jah. Welk process. Als dat apache is, wordt hij niet goed afgesloten. Je zou kunnen proberen het bij behorende PID te killen met 'kill <pid>', als dat niet werkt met 'kill -9 <pid>' of je server een reboot kado geven.

Mss dat de search er nog meer van weet. :)
offtopic:
Woei, wat zeg ik: 25345 hits :P

[ Voor 12% gewijzigd door Mac_Cain13 op 04-07-2004 13:52 ]


Verwijderd

Topicstarter
Ontzettend bedankt :) Het proces heb ik handmatig gekilled en daarna wou de webserver weer starten.

Update:

Helaas nog steeds komt er via mijn mailscript niks binnen.

Update2:

Weer dacht ik even dat het werkte. Niet dus. Mijn sendmail starten leverd zelfs nog niks op !

[ Voor 118% gewijzigd door Verwijderd op 04-07-2004 14:15 ]


Verwijderd

Topicstarter
Ik krijg het gewoon niet voorelkaar :(

Alles wat ik probeer loopt op niets uit.

De php.ini is aangepast.

Apache server gereset

Sendmail draaiende gemaakt.

En nog werkt mail("adres@adres.nl","onderwerp","bericht"); NIET !

:'(

Ik weet het niet meer.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Probeer onderstaande eens bovenin je script op te nemen zodat je zeker weet dat je alle errors te zien krijgt:

PHP:
1
error_reporting(E_ALL);


Controleer meteen even je error_log's; en gebruik in het vervolg de edit-button als je binnen 24 uur nog iets wil toevoegen aan je bericht, en je hebt als laatste gepost in een topic :)

[ Voor 40% gewijzigd door Spider.007 op 04-07-2004 14:37 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
Spider.007 schreef op 04 juli 2004 @ 14:37:
Probeer onderstaande eens bovenin je script op te nemen zodat je zeker weet dat je alle errors te zien krijgt:

PHP:
1
error_reporting(E_ALL);


Controleer meteen even je error_log's; en gebruik in het vervolg de edit-button als je binnen 24 uur nog iets wil toevoegen aan je bericht, en je hebt als laatste gepost in een topic :)
Hij geeft geen error die gerelateerd is aan mijn probleem. En ik zal vaker de edit button gebruiken. Maar is die php.ini file etc/php.ini de juiste ? en moet ik verder nog geen regels toevoegen naast sendmail_path ?

Wat zou nog meer een reden kunnen zijn waarom mijn mail formuliertje geen errors geeft maar toch niks verstuurd ?

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 10:21
Je mail formpje geeft geen error omdat je PHPtje perfect werkt. Je php.ini is nu (hoogst waarschijnlijk) ook goed en de nieuwe settings zijn ook geladen. Waar ik vermoed dat het fout gaat is je mailserver. Ik denk dat die niet goed is geconfigureerd.
Pak er eens een sendmail howto bij om sendmail goed in te stellen (is vrij lastig vind ik) of installeer ssmtp en ga die gebruiken.

Verwijderd

Topicstarter
Ik begin te vermoeden dat het fout zit bij de SMTP-port options.

Port=587, Name=MSA, M=E <- dit staat er ingesteld.

en via welke host moet ik mijn mail laten versturen ? localhost ? bij deze optie kan ik ook kiezen uit "liver directly"

Update:

De configuratie file van sendmail heet sendmail.cf en staat in /etc wat schets mijn verbazing... deze file is helemaal leeg (0 bytes) kan iemand mij vertellen wat hier aan de hand is ? Welke regels moet ik in die cf zetten

[ Voor 48% gewijzigd door Verwijderd op 04-07-2004 16:39 ]


  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 10:21
Blijkbaar is sendmail niet geconfigureerd, ik zou je willen adviseren óf een sendmail HowTo op te zoeken. Google weet er genoeg ;) óf een zeer simpele mailserver te installeren.

Als je de mailserver juist geconfigureerd hebt kan zal je ook gebruik kunnen maken van de mail() funtie in PHP. Succes!
Pagina: 1