mail() werkt niet
Ha php'ers.
Ik heb iets heel vreemds. Mail() werkt niet. In een ander script werkt hij echter wel. Ik heb het namelijk zo: Men vult een formulier in, script stuurt een bevestigingsmail, als men op link in mail klikt stuur een ander script (deze dus) een mail naar de eigenaar van de site.
De eerste mail zend hij zonder problemen, maar bij het volgende script (mail naar de eigenaar) werkt niet. Waar zou dat aan kunnen liggen? Volgens mij is mijn script goed...
Hier mijn script:
EDIT: Als ik deze uitvoer, dan krijg ik de melding dat het is verstuurd, maar ik krijg de mail niet binnen.
Ik heb iets heel vreemds. Mail() werkt niet. In een ander script werkt hij echter wel. Ik heb het namelijk zo: Men vult een formulier in, script stuurt een bevestigingsmail, als men op link in mail klikt stuur een ander script (deze dus) een mail naar de eigenaar van de site.
De eerste mail zend hij zonder problemen, maar bij het volgende script (mail naar de eigenaar) werkt niet. Waar zou dat aan kunnen liggen? Volgens mij is mijn script goed...
Hier mijn script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// e-mail adres van ontvanger
$mail_ontv = "[email protected]";
$mail_ontva = "[email protected]";
// set datum
$datum = date("d.m.Y H:i");
// set ip
$ip = $_SERVER['REMOTE_ADDR'];
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Een naam";
$onderwerp = "Aanmelding";
$inhoud_mail = "<b>Ingevuld formulier</b><br>";
$inhoud_mail .= $_SERVER['REQUEST_URI'] . "<br><br>";
$inhoud_mail .= "Heel veel blabla, met inhoud van een formulier, voor de overzichtelijkheid maar geskipt <br><br>";
$inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "<br><br>";
if((mail($mail_ontv, $onderwerp, $inhoud_mail, $headers))&&(mail($mail_ontva, $onderwerp, $inhoud_mail, $headers))){
echo "Uw mail is verstuurd. Indien nodig zal er contact met u worden opgenomen.";
}
else{
echo "Er is een fout opgetreden tijdens het verzenden. Probeer het opnieuw.";
}
?>
// e-mail adres van ontvanger
$mail_ontv = "[email protected]";
$mail_ontva = "[email protected]";
// set datum
$datum = date("d.m.Y H:i");
// set ip
$ip = $_SERVER['REMOTE_ADDR'];
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Een naam";
$onderwerp = "Aanmelding";
$inhoud_mail = "<b>Ingevuld formulier</b><br>";
$inhoud_mail .= $_SERVER['REQUEST_URI'] . "<br><br>";
$inhoud_mail .= "Heel veel blabla, met inhoud van een formulier, voor de overzichtelijkheid maar geskipt <br><br>";
$inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "<br><br>";
if((mail($mail_ontv, $onderwerp, $inhoud_mail, $headers))&&(mail($mail_ontva, $onderwerp, $inhoud_mail, $headers))){
echo "Uw mail is verstuurd. Indien nodig zal er contact met u worden opgenomen.";
}
else{
echo "Er is een fout opgetreden tijdens het verzenden. Probeer het opnieuw.";
}
?>
EDIT: Als ik deze uitvoer, dan krijg ik de melding dat het is verstuurd, maar ik krijg de mail niet binnen.
Gewijzigd op 01/01/1970 01:00:00 door Niek van Milligen
Waarom haakjes om de mail functie?
Krijg je geen foutmeldingen?
Moet dit geen e-mailadres zijn?
Code (php)
Krijg je geen foutmeldingen?
Moet dit geen e-mailadres zijn?
Gewijzigd op 01/01/1970 01:00:00 door Yearupie Achternaamloos
Die zijn inderdaad niet nodig, maar doen zijn er ook niet de oorzaak van. Heb ze al weggehaald, maar doet het nog steeds niet.
Nee helemaal geen foutmeldingen.
Heb dit bovenin script staan, maar dat geeft ook niks weer:
Nee helemaal geen foutmeldingen.
Heb dit bovenin script staan, maar dat geeft ook niks weer:
Nee. In mijn eigenlijke script staat het zo:
Dit heb ik vaker gebruikt (ook in bevestigingsmail) en dat werkt daar ook.
En die $naam en $mail bevatten jouw eigen gegevens?
Weet je zeker dat jouw e-mailadres juist is?
Zoals al eerder gezegd heb ik dit script iets ingekort voor de overzichtelijkheid. $naam en $mail bevatten de gegevens uit het formulier, ofwel: de naam van degene die het ingevuld heeft en het mailadres daarvan. Deze gegevens zijn niet direct van belang bij het verzenden van het script (ook $mail niet) omdat het niet naar $mail gaat, maar naar een vooraf ingesteld mailadres. Overigens moet $mail wel kloppen omdat daar de bevestigingsmail (die het dus wel doet) heen gestuurd word met daarin de link naar dit script.
'Niek:
$naam en $mail bevatten de gegevens uit het formulier, ofwel: de naam van degene die het ingevuld heeft
Dat is niet correct.
Zie SPF en de juiste headers.
Het email adres moet van jou zelf zijn van jou domein.
@SanThe
Waarom niet correct? Ik heb overigens die headers er bijna letterlijk ingezet, met de voor mij juiste gegevens, maar dat werkt ook niet.
Waarom niet correct? Ik heb overigens die headers er bijna letterlijk ingezet, met de voor mij juiste gegevens, maar dat werkt ook niet.
Omdat de FROM jouw gegevens moeten bevatten en niet van iemand anders. Die gegevens zet je eventueel in REPLY-TO.
FROM moet niet mijn gegevens bevatten. Dat is in de bevestigingsmail. Daar ziet de persoon mijn gegevens. In deze mail ziet de eigenaar van de site direct van wie de mail afkomstig is.
'Niek:
FROM moet niet mijn gegevens bevatten.
Tja, als jij liever eigenwijs bent.
Die mail komt dan waarschijnlijk niet door de SPF controle heen.
Probeer de phpmailer eens. Dit is een eenvoudig te inplementeren classe die alle mail problemen van je op kan lossen!




