PHP mail() functie werk niet :(
Ik probeer een contactpagina te maken. Maar de mail() functie van php blijkt niet te werken.
Dit is mijn code:
if(mail('[email protected]', 'the subject', 'the message', null, '[email protected]'))
{
echo '<p>Uw mail is succesvol verzonden! Wij zullen uw mail zo spoedig mogelijk lezen en uw contacteren. Bedankt voor het begrip.</p>';
}
else
{
echo '<p>Er is een fout opgetreden.</p>';
}
Hij geeft telkens de Er is een fout opgetreden aan. Dus volgens mij is er wat mis met de mailserver? Ik heb al gekeken in de php.ini enzo, maar ik krijg het niet werkend. Ik snap het niet meer, heb al op google verschillende oplossingen geprobeerd enzo.
Mss iemand van jullie die mij kan helpen?
Bedankt!
EDIT: Moet ik daar een SMTP server voor gaan installeren ofzo? Ik dacht dat dat bij PHP automatisch al zat. iemand een idee?
Gewijzigd op 21/05/2010 23:58:27 door Ruben Portier
Overigens is het vaak eenvoudiger om een mail class te gebruiken als:
PHP Mailer
Swift Mailer
Dan hoef je je ook niet te verdiepen in alle RFC voorwaarden
Bedankt alvast.
Swift Mailer. Deze klasse biedt onder andere de mogelijkheid om van de interne mail() functie gebruik te maken, maar biedt daarnaast veel meer mogelijkheden. Het is gewoon veel uitgebreider (en makkelijker) dan de mail() functie.
Neem zoals Noppes al zegt eens een kijkje naar Ja maar ik heb dat gedownload. Wat moet je dan doen om het te installeren? Ik krijg het niet voor elkaar.
documentatie eens door zou ik zeggen. Die is erg duidelijk dus daarmee moet je het kunnen snappen...
Lees de Oke, maar ik zou wel graag eens weten waarom mijn PHP mail() niet werkt dan. Wat kan er fout zijn? Of is het altijd verplicht om eerst een andere programma daarvoor te moeten installeren?
Verder zou je de error_reporting in je script eens op de hoogste stand kunnen zetten, dan wordt er wellicht nog een PHP foutmelding gegeven als je mail() probeert aan te roepen. Die foutmelding zal je meer vertellen dan jouw eigen foutmelding.
EDIT: In de PHP.ini zie ik dat deze aan staat: error_reporting = E_ALL
volgens mij is dat de hoogste dus dat hij alle errors toont? Maar ik zie geen errors als ik een mail probeer te sturen.
Hoe zou het komen dan dat het niet werkt? Iemand een idee?
Gewijzigd op 22/05/2010 16:42:55 door Ruben Portier
Draai je wel een mailserver?
Dank u wel.
De error geeft dit weer:
Notice: Undefined variable: sub in C:\Documents and Settings\ServerXP\Mijn documenten\Server\Web_Servers\htdocs\ruben\paginas\nl\contact.php on line 22
Notice: Undefined variable: uwemail in C:\Documents and Settings\ServerXP\Mijn documenten\Server\Web_Servers\htdocs\ruben\paginas\nl\contact.php on line 23
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Documents and Settings\ServerXP\Mijn documenten\Server\Web_Servers\htdocs\ruben\paginas\nl\contact.php on line 31
Gewijzigd op 22/05/2010 16:54:19 door Ruben Portier
Dan moet in php.ini de mailserver van je adsl-provider instellen.
En waar vindt ik die? Ik heb zonet trouwens een programma Free SMTP geinstalleerd. Als ik nu die mail probeer te zenden zie ik op dat programma de e-mailadres opkomen, maar hij blijft maar laden.
Die php.ini moet je even opzoeken. Ik weet niet waar die staat. Soms schijnen er zelfs meerdere te zijn.
Maar luister, zeg mij even een goede mailserver die ik op windows xp kan installeren en goed zal werken. En dan moet ik volgens mij in de php.ini gewoon toch de poort en die server instellen. de smtp server moet dan op localhost staan omdat het op dezelfde pc zal zijn.
Gewijzigd op 22/05/2010 17:46:23 door - SanThe -
Ja maar luister, heb ik voor een windows xp sp3 een aparte mail serve rnodig om die php mail() functie te laten werken of niet? Ik heb nu aan het testen met een mail server.
Niet per se. Je kunt ook gewoon de smtp server van je internet provider gebruiken. Dat is voor test doeleinden veel eenvoudiger, of was je van plan om een productieserver op je pc te gaan draaien?
Warning: mail() [function.mail]: SMTP server response: 530 SMTP authentication is required. in C:\Documents and Settings\ServerXP\Mijn documenten\Server\Web_Servers\htdocs\ruben\paginas\nl\contact.php on line 31
Uw bericht is succesvol verzonden
EDIT: Hoe gebruik ik dan die mail ding van mijn ADSL provider? Hoe moet ik dat instellen?
EDIT2: Hier kan lokje op. Ik het de SMTP van localhost naar smtp.skynet.be veranderd omdat ik ADSL Skynet heb. en hij zend perfect.
Bedankt allemaal!
Gewijzigd op 22/05/2010 17:36:00 door Ruben Portier