Ich arbeite gerade an einem eigenen Modul.
Es soll unter anderem Mails an einige FrontEndUser versenden.
Die Mails werden an die jeweiligen Email-Adressen der FrontEndUser versendet.
Das funktioniert auch. Soweit so gut.
Allerdings gibt es da ein Problem.
Ich versende die Mails in einer foreach-Schleife.
Also z.B.:
Code: Select all
$cmsmailer = $this->GetModuleInstance('CMSMailer');
foreach($users_array as $user)
{
$bodytext = 'Hallo '.$user['name'].'! Blah...';
$cmsmailer->AddAddress($user['email']);
$cmsmailer->SetBody($bodytext);
$cmsmailer->IsHTML(true);
$cmsmailer->SetSubject('Blah!');
$cmsmailer->Send();
}
Komischerweise kommen aber bei jedem nachfolgenden User auch die Mails der vorherigen User an.
Also der zweite User erhält die Mail von User-1 und seine.
Der dritte User von User-1, User-2 und seine Mail...
Bis der letzte User natürlich alle Mails bekommt.
Das ist defnitiv nicht richtig so.
Und ich weiß nicht, ob es ein Fehler im CMS Mailer oder in meinem Code ist.
Ich habe mit unset($cmsmailer); am Ende der foreach-Schleife versucht die Variable jedesmal komplett zu löschen.
Leider ohne Erfolg.
Ich habe außerdem versucht, die variable $cmsmailer als Array zu definieren, sodass es für jeden User eine eigene Instanz des CMS Mailer Moduls gibt:
Code: Select all
foreach($users_array as $user)
{
$bodytext = 'Hallo '.$user['name'].'! Blah...';
$cmsmailer[$user['id']] = $this->GetModuleInstance('CMSMailer');
$cmsmailer[$user['id']]->AddAddress($user['email']);
$cmsmailer[$user['id']]->SetBody($bodytext);
$cmsmailer[$user['id']]->IsHTML(true);
$cmsmailer[$user['id']]->SetSubject('Blah!');
$cmsmailer[$user['id']]->Send();
}
Mir gehen die Ideen aus.
Langsam bin ich am Verzweifeln.
Wo liegt der Fehler?
Kann mir da jemand einen Schubs in die richtige Richtung geben?