Page 1 of 1

Problem mit CMS Mailer

Posted: Fri Jul 04, 2008 3:51 pm
by hoshy
Hallo, mal eine Frage an die "Programmierer" unter euch...
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();
}

Beim ersten User in dem Array $users_array klappt alles ohne Probleme.
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();
}

Ebenfalls kein Erfolg.
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?

Re: Problem mit CMS Mailer

Posted: Fri Jul 04, 2008 8:12 pm
by NaN
Ich bin mir nicht sicher, aber nachdem ich mir den Quellcode des CMS Mailer Moduls angeschaut habe, konnte ich mit meinen Bescheidenen "Programmierkenntnissen" keinen Fehler entdecken.
Allerdings ist mir da eine Funktion namens reset() aufgefallen.
Versuchs mal mit $cmsmailer->reset(); am Ende der foreach-Schleife.

Re: Problem mit CMS Mailer

Posted: Mon Jul 07, 2008 7:50 am
by Andiministrator
Hast Du schonmal die Funktion
    ClearAddresses()
versucht, am besten vor der Funktion AddAddress() ?