Tworzę właśnie z wykorzystaniem zestawu klas Swift Mailer moduł newslettera i napotkałem następujący problem - nie potrafię spersonalizować wiadomości wysyłanych za pomocą Swift_BatchMailer.
Mój kod:
<?php $message =& new Swift_Message( $mail->title, $body, "text/html" ); $recipients =& new Swift_RecipientList(); foreach ($emails as $email) $recipients->addTo($email->email, $email->email); } $batch =& new Swift_BatchMailer($swift); $batch->send($message, $recipients, config::item('newsletter.mail_from')); ?>
Moje pytanie czy wogóle możliwe jest wysyłanie w ten sposób spersonalizowanych wiadomości, czy należy podejść z innej strony.
//---- Edit -----
Problem rozwiązany, należy użyć pluginu Decorator:
<?php $swift =& new Swift($conn); $message =& new Swift_Message( $mail->title, $body, "text/html" ); $recipients =& new Swift_RecipientList(); foreach ($emails as $email) { $recipients->addTo($email->email); $replacements[$email->email] = array('{unsubscribe}' => url::site('newsletter/unsubscribe/'.$email->token) ); } $swift->attachPlugin(new Swift_Plugin_Decorator($replacements), "decorator"); $batch =& new Swift_BatchMailer($swift); $batch->send($message, $recipients, config::item('newsletter.mail_from')); ?>