Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: PHP mail() Functie werkt niet  (gelezen 6382 keer)

PHP mail() Functie werkt niet
« Gepost op: 2011/07/22, 01:36:36 »
Goedenacht iedereen,

Ik zit nu al uren te vechten met mijn php script dat een email verzend.
Het script werkt wel op mijn hosting provider, maar niet op mijn eigen servertje.
Php zegt dat de mail verzonden is maar ik krijg niks binnen.
De server is alleen bedoeld om via php emails te verzenden.
Ik heb al een hele tijd lopen googlen maar tot nu toezonder resultaat.
Er wordt verteld dat het aan posttfix kan liggen of aan sendmail.
Ik heb beide er helemaal afgegooit en toen sendmail opnieuw geinstalleerd, geen resultaat.
Toen sendmail er weer afgegooit en toen postfix geinstalleerd, maar dat helpt ook niet.
Ik ben ten einde raad, misschien dat ik op dit nederlandse forum verder kom.

Alvast bedankt,

Groeten Johan

Re: PHP mail() Functie werkt niet
« Reactie #1 Gepost op: 2011/07/22, 08:24:33 »
Ik denk dat dit beter in programmeren thuis hoort.
Wat is het verschil tussen de server van je hosting provider en jou? Misschien dat er een aantal instellingen (van bijv. je firewall) verkeerd staan.
Tis maar een ideetje, heb zelf geen verstand van php ;)
Desktop:
Processor: Intel® Core™2 Quad CPU Q8300 @ 2.50GHz × 4, Geheugen: 3.9Gb, GPU: nVidia 220GT OS: Windows 7 64 bit / Ubuntu 12.04 64 bit
Notebook:
Processor: Intel® Core™ i7-4700MQ, Geheugen: 8Gb, GPU: nVidia GTX765m (met Optimus) OS: Windows 8 64 bit / Elementary OS Luna 64 bit

Re: PHP mail() Functie werkt niet
« Reactie #2 Gepost op: 2011/07/22, 10:08:12 »
@cheap applications,

Volgens mij is dit een instellingprobleem.
Ik heb 2 hostingproviders, allebei werken en 1 is windows andere linux.
Ik heb eigenlijk nog nooit problemen gehad met PHP mail(), alleen nu op mijn eigen server.
Ubuntu server, Lamp.


Re: PHP mail() Functie werkt niet
« Reactie #3 Gepost op: 2011/07/22, 10:42:02 »
Hey,

Ik heb ook webmin geinstalleerd. Als ik nu naar Servers ga en dan Postfix Mail Server. Dan kan ik kiezen voor Mail Wachtrij. Hierin staan nu 29 mailtjes. Waarschijn degene die ik via PHP mail() heb willen versturen.
Als ik nu op een mailtje klik, krijg ik het volgende te zien bij Message text:
/usr/share/sendmail/sendmail: 1267: /usr/sbin/sendmail-msp: not found
Kan iemand hier wat mee?

Re: PHP mail() Functie werkt niet
« Reactie #4 Gepost op: 2011/07/22, 11:12:03 »
Geen idee of je er wat aan hebt...

Ik heb op een server postfix geïnstalleerd, en om dat werkend te krijgen met php scripts moest ik /etc/php5/apache2/php.ini aanpassen, de volgende regel:

sendmail_path = "/usr/sbin/sendmail -t -i"

Re: PHP mail() Functie werkt niet
« Reactie #5 Gepost op: 2011/07/22, 11:27:38 »
@thomas,

Bedankt voor de input, maar dit had ik al ergens gelezen. En dit had ik al zo veranderd.
Maar nog steeds geen resultaat

Re: PHP mail() Functie werkt niet
« Reactie #6 Gepost op: 2011/07/22, 12:01:12 »
Ik heb weleens ergens gelezen dat sommige providers direct-mail blokkeren om zo spam tegen te gaan. Dan zou het dus heel goed kunnen dat het met dezelfde instellingen wel werkt vanaf je hosting provider, maar niet vanaf thuis.

Andere problemen kunnen zijn dat een kaal mailtje, zonder headers, geblokkeerd worden door ontvangende mailservers, omdat veel spam vroeger zo werd verzonden (via een simpel php-scriptje). Naar wat voor adressen probeer je e-mail te sturen? En heb je de spamboxen van die e-mailadressen al gecontroleerd? Eigenlijk zou dit het niet kunnen zijn, als hetzelfde script het wel doet vanaf de hosting provider.

Misschien heb je hier wat aan: http://ubuntuforums.org/archive/index.php/t-34786.html. Dat is wel een oud bericht.

There's nothing I like less than bad arguments for a view that I hold dear.
- Daniel Dennett

Re: PHP mail() Functie werkt niet
« Reactie #7 Gepost op: 2011/07/22, 12:42:32 »
@Sebastiaan,

Tnx voor de input.
Als ik op je link klik, krijg ik een lege pagina.

Van die spam zou het ook kunnen zijn.
Ik heb het nog eens geprobeert en nu krijg ik dit bij mijn postfix mails:

This is the mail system at host mijnserver.arnhem.chello.nl.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

<info@mijnemail.nl>: host mail3.mijnemail.nl[193.93.174.91] said: 553
    Requested action not taken: mailbox name not allowed (in reply to MAIL FROM
    command)

Dus mijn hosting van mijn email adres blokkeerd hem??
Even later dan komt de melding die ik eerder zei.
Kan ik iets instellen bij postfix waardoor dat niet gebeurd?

Re: PHP mail() Functie werkt niet
« Reactie #8 Gepost op: 2011/07/22, 13:50:34 »
Of het blokkeren door de provider van de smtp poort het probleem is weet ik niet, maar je kan postfix instellen zodat deze via poort 587 werkt.

Verander in /etc/postfix/master.cf
submission inet n       -       -       -       -       smtpd

en dan sudo postfix reload

Dan ook in je mailclient de instellingen aanpassen zodat de juiste poort gebruikt wordt.
« Laatst bewerkt op: 2011/07/22, 13:52:35 door Thomas de Graaff »

Re: PHP mail() Functie werkt niet
« Reactie #9 Gepost op: 2011/07/22, 14:57:54 »
De standaard SMTP-poort is niet geblokkeerd (het bericht komt immers bij de server aan), maar dit:
Citaat
<info@mijnemail.nl>: host mail3.mijnemail.nl[193.93.174.91] said: 553
    Requested action not taken: mailbox name not allowed (in reply to MAIL FROM
    command)
wijst er volgens mij op dat de server mail3.mijnemail.nl het e-mailadres van de afzender niet lust.

Re: PHP mail() Functie werkt niet
« Reactie #10 Gepost op: 2011/07/22, 15:06:52 »
Ja dat lijkt mij ook.
Maar hoe los ik dat op?
Zoals gezegd gaat er met de server niet gemaild worden, alleen moet het werken voor de functie php mail()
Ook wordt er op de server geen mail ontvangen.
Ik heb trouwens geprobeerd om naar mijn hotmail te sturen en die stuurd hem ook gewoon terug.
Er staat dan het volgende bij:


<mijnemailadres@hotmail.com>: host mx1.hotmail.com[65.55.92.168] said: 550
    DY-001 (SNT0-MC3-F36) Unfortunately, messages from 77.248.131.67 weren't
    sent. Please contact your Internet service provider. You can tell them that
    Hotmail does not relay dynamically-assigned IP ranges. You can also refer
    your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. (in
    reply to MAIL FROM command)

Ik krijg niks in mijn mailbox van hotmail te zien ook niet bij de spambox.
Kan ik postfix instellen zodat dit niet gebeurd?

Offline Bloom

  • Lid
Re: PHP mail() Functie werkt niet
« Reactie #11 Gepost op: 2011/07/22, 15:16:06 »
Er zijn verschillende mailservers die weigeren post te aanvaarden van andere servers met een dynamisch ip-adres. Hotmail is er daar een van. Daar is maar één oplossing voor: stuur uitgaande e-mails altijd naar de smtp-server van je provider. Die zal ze wel aanvaarden en dan naar de juiste bestemming doorsluizen.

Re: PHP mail() Functie werkt niet
« Reactie #12 Gepost op: 2011/07/22, 15:27:20 »
Ok, kan ik dat ergens instellen bij postfix, zo ja waar.
Of moet dit in mn php schript?

Re: PHP mail() Functie werkt niet
« Reactie #13 Gepost op: 2011/07/22, 15:35:35 »
stuur uitgaande e-mails altijd naar de smtp-server van je provider.
Dat is in eerste instantie toch ook al gebeurd? Ik zie in Antwoord #7 dat het bericht via een server van UPC (Chello) is gegaan. Pas bij het doorsturen naar de server van mijnemail.nl gaat het mis. De vraag is waarom die server het afzenderadres niet lust. Is er iets bijzonders met dat adres? Valt het soms niet te herleiden naar een IP-adres van UPC?

PS. De Hotmail-foutmelding is van een andere aard. Daar is geprobeerd rechtstreeks met een hotmail-server te verbinden en dat kan niet van een IP-adres van UPC zonder authenticatie.

Overigens ken ik postfix niet, dus ik heb geen idee of je daarmee authenticatie in kunt instellen. Ik gebruik msmtp en daarmee kan het in ieder geval wel.
« Laatst bewerkt op: 2011/07/22, 15:40:55 door grizzler »

Re: PHP mail() Functie werkt niet
« Reactie #14 Gepost op: 2011/07/22, 16:14:21 »
@grizzler,

Volgens mij heb ik niets ingesteld zodat postfix het smtp adres van upc pakt.
Wat je ziet is:  mijnserver.arnhem.chello.nl zo heet mijn server waarom er die arnhem.chello.nl achter staat weet ik niet, dat heeft ie volgens mij zelf gedaan.

Re: PHP mail() Functie werkt niet
« Reactie #15 Gepost op: 2011/07/22, 16:17:00 »
Wellicht blokkeert je provider wel SMTP-verkeer om spam tegen te gaan.

Re: PHP mail() Functie werkt niet
« Reactie #16 Gepost op: 2011/07/22, 16:31:39 »
Dat zou kunnen, maar waarom werkt het wel op n online hostingprovider.
Ik neem aan dat php mail() online hetzelfde werkt als op mijn server?

Re: PHP mail() Functie werkt niet
« Reactie #17 Gepost op: 2011/07/22, 16:41:38 »
Volgens mij heb ik niets ingesteld zodat postfix het smtp adres van upc pakt.
Wat je ziet is:  mijnserver.arnhem.chello.nl zo heet mijn server waarom er die arnhem.chello.nl achter staat weet ik niet, dat heeft ie volgens mij zelf gedaan.
Aha, dan is het dus wel een rechtstreekse verbinding. Dat wil zeggen, postfix op je pc probeert iets af te leveren bij mijnemail.nl, zonder tussenkomst van de server van je provider. Dan begrijp ik waarom het fout gaat: zelfde reden als bij hotmail en wat Bloom zegt.
Dat het bij online hostingproviders wel werkt is niet zo gek. Daar wordt door de server van die provider verbinding gemaakt met mijnemail.nl en dat is geen probleem omdat die server (waarschijnlijk) niet in een dynamische adresrange zit.

Kortom, gewoon proberen postfix zo in te stellen dat verbinding wordt gemaakt met de uitgaande SMTP-server van UPC.

Re: PHP mail() Functie werkt niet
« Reactie #18 Gepost op: 2011/07/22, 19:06:46 »
Lijkt me logisch, maar hoe doe ik dat?
Ik heb het volgende ingesteld:
relayhost = smtp.upcmail.nl
Moet ik nog meer instellen, want zo werkt het nog niet.
Ik krijg geen mail meer terug, maar het mailtje komt ook niet aan??

Re: PHP mail() Functie werkt niet
« Reactie #19 Gepost op: 2011/07/23, 00:54:59 »
Even een korte samenvatting van het probleem zoals het er nu voor staat:

Als ik op mijn thuisserver via phpMail() een mailtje stuur geeft het script aan dat het is verstuurd.
Er verschijnt echter niks in mijn mailbox.
Dankzij de input van andere leden op dit forum heb ik het 1 en ander uitgeprobeerd.
OP mijn server staat Postfix geinstalleerd voor het versturen van de mail.
Ik heb internet van UPC.
Als ik postfix instel dat hij rechtstreeks verstuurd, krijg ik een mail (van de hostingprovider van het emailadres waar ik het naar toe stuur) terug in postfix met de volgende foutmelding:

<info@mijnemail.nl>: host mail3.mijnemail.nl[193.93.174.91] said: 553
    Requested action not taken: mailbox name not allowed (in reply to MAIL FROM
    command)

Als ik in postfix instel dat het via de smtp server van UPC gaat (relayhost = smtp.upcmail.nl) krijg ik geen foutmeldign terug, maar ik ontvang niet het mailtje dat ik via het script verstuur.

In principe ben ik dus nog niet echt een stap verder
Heeft nog iemand een idee? Moet ik postfix vergeten en heeft iemand een ander alternatief? Zoals gezegt heb ik een dynamisch ipadres op mijn thuisserver. Maar ik neem aan dat wel meer mensen dit hebben.

Ik hoop dat we dit probleem kunnen oplossen.

Re: PHP mail() Functie werkt niet
« Reactie #20 Gepost op: 2011/07/23, 16:53:32 »
klinkt alsof de mail server je from email niet accepteert. Probeer eens met de hand op de command line een mail te versturen

nc mail3.mijnemail.nl 25
ehlo mijnemail.nl
mail from: FROMEMAIL
rcpt to: TOEMAIL
data
test
.

FROMEMAIL en TOEMAIL even invullen uiteraard
URD - http://www.urdland.com - Usenet Resource Downloader

Re: PHP mail() Functie werkt niet
« Reactie #21 Gepost op: 2011/07/23, 19:56:41 »
Hey,

Bij nc mail3.mijnemail.nl 25 krijg ik:
220 wsspam03.livemail.nl
Bij ehlo mijnemail.nl krijg ik niks
Bij mail from: info@qwerty.nl
Krijg ik:
Het programma 'mail' kan gevonden worden in de volgende pakketten:  
* heirloom-mailx
* mailutils
Probeer: sudo apt-get install <geselecteerd pakket>

1 van die 2 installeren?
« Laatst bewerkt op: 2011/07/24, 01:12:36 door johanrombouts »

Re: PHP mail() Functie werkt niet
« Reactie #22 Gepost op: 2011/07/23, 22:41:01 »
Bij nc mail3.mijnemail.nl 25 krijg ik:
220 wsspam03.livemail.nl
Bij ehlo mijnemail.nl krijg ik niks
Geen reactie die met 250 begint? En ook geen foutmelding? Typisch.

Citaat
Bij mail from: info@xxxxxxxx.xx (domeinnaam weggehaald - zou ik in het origineel ook doen, als ik jou was)
Krijg ik:
Het programma 'mail' kan gevonden worden in de volgende pakketten: 
* heirloom-mailx
* mailutils
Probeer: sudo apt-get install <geselecteerd pakket>
Dan is op dat moment de verbinding dus alweer verbroken, want dat is een antwoord van je eigen systeem en niet van de mailserver.
Blijkbaar verbreekt die zonder meer de verbinding als 'iets' hem niet bevalt. Kan zijn dat hij het 'verdacht' vindt te worden 'aangesproken' met zijn eigen domeinnaam. De parameter van de 'ehlo'-opdracht moet eigenlijk iets over de identiteit van de client zeggen.

Wat gebeurt er als je achter ehlo je eigen domeinnaam invult?

Krijg je dan wel een 250-respons? Zo ja, wat is de reactie op de volgende opdracht(en)? Ik zou overigens wel < en > om het afzender- en bestemmingsadres zetten (dus: mail from:<info@xxxxxxxx.xx> en rcpt to:<whatever@xxxx.xx> ).

Re: PHP mail() Functie werkt niet
« Reactie #23 Gepost op: 2011/09/06, 00:50:11 »
Nou, het begint ergens op te lijken.
Ik heb nog even gegoogled en als ik nu in mijn php script het volgende invul, dan werkt het min of meer:
@mail($to, $subject, $message, $headers, "-finfo@email.nl")
Dus de -f parameter met daarachter mijn emailadres.
Dit schijnt echter nadelen te hebben als ik classes van andere mensen ga gebruiken.
Ik wil bv een class gaan gebruiken om bijlagen bij de mail de versturen.
Dus inpricipe wil ik die -f paramter niet gebruiken.
Dat schijnt weer aan mijn postfix instellingen te liggen.
Hierin staat het volgende:
myhostname = localhost
alias_maps = hash:/etc/aliases
myorigin = mijnserver.nl
mydestination = info@mijnemail.nl, localhost, localhost.localdomain, localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
relayhost = mail.chello.nl


Het schijnt aan myorigin te liggen.
Ik heb hier gelezen (http://lenss.nl/2009/01/making-php-mail-work-on-ubuntu-through-postfix/) dat je dit in moet vullen: myorigin = mail.server.
Maar dit moet ik aan mijn syteem aanpassen, maar wat moet ik invullen.
Ik heb namelijk geen domeinnaam (komt er ook niet)
Iemand iedeen?

Groeten Johan