Hallo,

ik ben bezig met een contact form maar het lukt nog steeds niet,
ziet iemand de fout ?
Er komt geen fout op want er komt gelukt op maar het word niet verstuurd


<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

$to = $_POST['aan'];
$subject = $_POST['onderwerp'];
$message = $_POST['bericht'];
$headers = 'From: '.$_POST['van']."\r\n".
'Reply-To:'.$_POST['van']."\r\n".
'X-Mailer: PHP/'.phpversion();


$msg1 = mail($to, $subject, $message, $headers);

if($msg1)
{
echo 'Gelukt';
}
else
{
echo 'Fout bij verzenden';
}
}
else
{
echo '
<form class="contact" action="" method="post">
<label class="contact">Aan</label>
<select class="contact" name="aan">
<option value="[email protected]">Sam</option>
<option value="[email protected]">Christian</option>
</select>

<label class="contact" for="1">Van</label>
<input class="contact" id="1" name="van" type="text" />

<label class="contact" for="2">Onderwerp</label>
<input class="contact" id="2" name="onderwerp" type="text" />

<label class="contact" for="3">Bericht</label>
<textarea class="contact" name="bericht"></textarea>

<input type="submit" class="submit" value="Verzenden">
</form>';
}
?>

ook niet als je dit boven aan je script zet.


error_reporting(E_ALL);
ini_set("display_errors","On");
heb ik geprobeert,

en nee dit lukt niet,

er komt wel gelukt! op maar in postvak in is er niets te vinden.

thx
 $msg1 = mail($to, $subject, $message, $headers);


Je kent nu aan variabele $msg1 een 'waarde' toe en daarmee krijg je 'gelukt' als uitkomst van je if-statement.

Kijk eens op bv http://php.net/manual/en/function.mail.php hoe je dit kunt oplossen.
Obelix en Idefix op 09/08/2010 21:59:42

Je kent nu aan variabele $msg1 een 'waarde' toe en daarmee krijg je 'gelukt' als uitkomst van je if-statement.
Je mag best het resultaat van een functie en in dit geval mail() toekennen aan een variabele. Ik gebruik dit en werkt prima:
$mail_sent = @mail( $to, $subject, $message, $headers );
//the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent to ".$to : "Mail failed";

Het probleem ligt niet in $msg = mail(
wat zou het probleem kunnen zijn dan :)à?

thx
Ben je er ook zeker van dat de mail niet wordt verstuurd? Vaak komen mailtjes met verkeerde headers namelijk in de spambox terecht. Zoek daar ook eens even. Mocht het in de spambox zitten, dan zou ik overwegen naar een oplossing als PHPMailer, aangezien die wat beter is in de goede headers meesturen, en dus een (veel) kleinere kans heeft als spam te worden aangemerkt.
Nee,

ik heb overal gekeken en zie nergens de mail,
heb het ook al proberen sturen naar andere mensen hun email
en lukt ook niet

PHPMailer prima tool, mee eens.
Of zoek naar een goed header voorbeeld en probeer dat.
Dit is sowieso onnodig: 'X-Mailer: PHP/'.phpversion();

[edit]
Dit is het enige dat ik in de header zet en het werkt prima!
$headers = "From: Website Cafe Proost <[email protected]>\r\n";
[google]swiftmailer[/google]
Ik heb even iets uit de oude doos voor je getrokken ... ik gebruik zelf nu ook phpMailer, al jaren! Dan moet je wel een beetje weten hoe je met classes werkt.

Zo zijn we allemaal begonnen, dus hierbij..
(je kan zelf wel even de vars aanpassen, toch?)


<?php

	//-----------------------------------------------------------------
	//	Configure > Error display
	//-----------------------------------------------------------------
	error_reporting(E_ALL);
	ini_set("display_errors","On"); //activeer de display_error 
	
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

	$headers  = "From: \"".$a."\" <".$e.">\r\n";   //vanwie is mail
    $headers .= "Reply-To: \"".$a."\" <".$e.">\r\n";     //op mail kunnen beantwoorden.
    //$headers .= "Cc: \"naam mijn domein\" <[email protected]>\r\n";
    //$headers .= "Bcc: \"naam mijn domein\" <[email protected]>\r\n";
	//$headers .= "add_attachment: ";
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";  //   text/html   text/plain		image/gif		multipart/alternative
    $aan  = '[email protected]' . ', '; // note the comma
    $onderwerp = '[ Contact formulier ] mijn script.nl';
    $bericht = ''; //html tussen de '', of gewoon tekst
        
    if (mail($aan, $onderwerp, $bericht, $headers)) {
    {
        echo 'Gelukt';
    }else
		{
			echo 'Fout bij verzenden';    
		}
}
else
	{
	echo '
		<form class="contact" action="" method="post">
			<label class="contact">Aan</label>
			<select class="contact" name="aan">
				<option value="[email protected]">Sam</option>
				<option value="[email protected]">Christian</option>
			</select>
			
			<label class="contact" for="1">Van</label>
			<input class="contact" id="1" name="van" type="text" />
		
			<label class="contact" for="2">Onderwerp</label>
			<input class="contact" id="2" name="onderwerp" type="text" />
			
			<label class="contact" for="3">Bericht</label>
			<textarea class="contact" name="bericht"></textarea>
			
			<input type="submit" class="submit" value="Verzenden">
		</form>';
    }
?>

Reageren