Gezien sendmail stokoud is, werd me aangeraden PHPMailer te gebruiken. Ik probeer hier dan ook mee aan de slag te gaan. Het lijkt heel simpel en is gelijkaardig aan sendmail behalve dat het kan gebruik maken van SMTP.
Maar het schoentje knelt..
Zit al uren te zoeken waar mijn fout kan liggen maar ik zie het niet. Kan iemand in onderstaande code de fout zien? Mijn ogen beginnen alvast stilaan te wennen aan de foute code ;)
Html van form in index.html
---------------------------
<form class="form clearfix" action="sendmail.php" method="POST">
<input type="text" class="span12" id="name" name="name" value="" placeholder="Naam">
<input type="email" class="span12" id="email" name="email" value="" placeholder="Uw e-maildres">
<input type="text" class="span12" id="subject" name="subject" value="" placeholder="Onderwerp">
<textarea class="span12" id="message" name="message" placeholder="Uw vraag of reservatie" rows="6">
</textarea>
<button class="btn btn-large pull-right" type="submit">Verzenden</button>
</form>
PHP van sendmail.php
--------------------
<?php
require 'PHPMailerAutoload.php';
function sendemail($name, $email, $subject, $message)
{
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'mail.mijndomeinnaam.be'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'mijnemailadres'; // SMTP username
$mail->Password = 'mijnpaswoord'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to
$mail->setFrom($email, $name);
$mail->addAddress('mijnemailadres', 'Wouter DM'); // Add a recipient
$mail->addReplyTo($email, $name);
$mail->Subject = $subject;
$mail->Body = $message;
}
function validate($name, $email, $subject, $message)
{
$error = '';
if($name == '')
$error = 'Please fill in your name';
if(!filter var($email, FILTER_VALIDATE_EMAIL))
$error = 'Please fill in your email';
if($subject == '')
$error = 'Please fill in a subject';
if($message == '')
$error = 'Please fill in your message';
return $error;
}
$name = '';
$email = '';
$subject = '';
$message = '';
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
//formulier is verzonden
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$error = validate($name, $email, $subject, $message);
if($error != '')
echo $error;
else
if (sendemail($name, $email, $subject, $message) == true)
header('Location: thankyou.html');
}
?>