Beste,
Ik heb een functie gemaakt die aan de hand van een gebruikersgroep een mail stuurt naar de leden van die groep met phpMailer.

Het gaat alleen namelijk fout wanneer er meerdere leden in 1 groep zitten. Het script verstuurt dan maar 1 mailtje naar de eerste gebruiker.Het lijkt er wel op dat hij zijn loop niet goed doet...
Misschien kunnen jullie helpen?

<?php
function mailGroup ($groupId)
{
//REQUIRE_ONCE IS BELANGRIJK!
require_once ('class.phpmailer.php');
$group = mysql_real_escape_string ($groupId);
$qry = mysql_query ("SELECT * FROM users WHERE user_group = '$group'") or die(mysql_error());

if(mysql_num_rows($qry) > 0 ) {
//Meer dan 1 resultaat, er zijn dus leden in de groep. Mail klaarmaken en versturen.
while($user = mysql_fetch_assoc($qry))
{

$mail = new PHPMailer();
//Email wordt als html verzonden
$mail->IsHTML(true);
//Afzender
$mail->From = "[email protected]";
$mail->FromName = "afz";

//SMTP instellingen
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "smtp.server";
$mail->Port = 587;
$mail->Username = "gebruikers@naam";
$mail->Password = "pass";

//Ontvanger
$mail->AddAddress($user['user_email'], $user['user_realname']);
//Onderwerp
$mail->Subject = "Nieuw bericht op het intranet";
//HTML Mail
$mail->Body = "Beste ".$user['user_realname']." <br /><br />Er staat een nieuw bericht voor u klaar op het intranet. <br />
Log in op <a href='ad.res'> het intranet </a> om het bericht te lezen.";
//Alternatieve tekst
$mail->AltBody ="Beste ".$user['user_realname']." nn Er staat een nieuw bericht voor u klaar op het intranet. nn
Log in op ad.res om het bericht te lezen. nn (indien de link niet werkt kunt u deze kopieren en plakken in uw browser.)";
$mail->WordWrap = 200;

if(!$mail->Send()){
//Fout bij versturen, false terugsturen
$mailError = $mail->ErrorInfo;
return false;
}else{
//Verzenden is gelukt, true terugsturen
return true;
}
}//end while

}//end numrows
else {
//Geen resultaten. Er zijn geen leden in de groep, false terugsturen
return false;
exit();
}


}

?>
Duidelijk, de return in je while loop.

If called from within a function, the return statement immediately ends execution of the current function, and returns its argument as the value of the function call.
Thnx! Het werkt! Nu nog even iets verzinnen hoe ik toch een resultaat kan terug geven..
Tel het aantal mails dat succesvol is verstuurd en geef dat aantal terug.

Reageren