Hoi Allemaal,

Ik heb een registratie scriptje gemaakt en wil na registratie een mail sturen.
Op aanraden van een paar leden hier gebruik ik hiervoor PHPMailer.

Hij mailed wel, maar hij stuurt het onderwerp dubbel. Deze komt er 2x in te staan, en hij schiet door naar de error, iets wat eigenlijk niet zou moeten kunnen als hij wel het mailtje stuurt.

Ik heb het precies zo gedaan als in het voorbeeld dat er bij word geleverd :

<?php
require_once("inc/phpmailer/phpmailer.inc.php");

$mail = new PHPMailer();
$mail->From = $sitemail;
$mail->FromName = $sitenaam;
$mail->AddAddress("$emailadres", "$voornaam");
$mail->Subject = "Registratie";
$mail->Body = "Je bent succesvol geregistreerd op $sitenaam ! \n Username : ".$emailadres." \n Password : ".$mailpass." \n \n We wensen je veel plezier met het schrijven van artikelen!\n \n $siteurl";

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
?>

Hij verstuurd het mailtje, maar gaat vervolgens wel naar
<?php
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo; ?>

Alleen weergeeft hij geen fout, omdat deze er niet is.

Ik doe vast iets fout, maar wat...
Heeft iemand een idee?

Alvast bedankt!!
Ik ken PHPMailer niet, maar moet $mail->Send() niet met kleine letter? Kan nog wel eens een fout geven...?

Voor de rest, wat is jou eigen script? Is dat wat daar staat of is dat het voorbeeld?
Hoi Chi,

Grote of kleine letter maakt niet uit, heb het net geprobeerd. Hij verstuurd het wel maar gaat nog steeds naar de error. De rest van de code is op zich niet relevant, dat is het registreren en in de database zetten. Het probleem is puur het mailen ervan.
Haal alle variabelen eens buiten quotes.
Regel 5+6 doe je dat wel, maar in de rest van je script niet altijd.
Oeps, slordigheidje van mijn kant.
Heb de variabelen zonder quotes gezet, maar zoals ik er verwachte is dit niet het probleem :p
Haal eens die if weg en doe dit:
<?php
var_dump($mail->Send());
?>
Wat krijg je dan?
Nou, dan weet je dat ook weer. Die functie geeft dus geen true of false terug, zoals jij verwacht, maar gewoon NULL (niks dus). Je kunt dus geen check maken.
Wouter, een functie geeft toch altijd een true of false terug als er geen content wordt teruggestuurd...?
Zou moeten... wellicht is die PHPMailer niet zo geweldig als vaak gezegd?
Of.... is $mail->Send() gewoon niet correct!!!
Ik heb de if statement weggehaald en gewoon $mail->Send(); neergezet, er van uitgaande dat hij toch wel mailed. Nu alleen het probleem nog dat hij het onderwerp dubbel invult, maar dat zal wel in de code van phpmailer zelf zitten, ga ik nog even uitzoeken.

Reageren