Информационный бюллетень - BBC и ссылка для отписки - PullRequest
0 голосов
/ 06 сентября 2011

Таблица рассылки:

id | email | unsubscribe_link

$emails = NewsletterTable::getInstance()->findAll();    
$count = count($emails);
$message = $this->getMailer()->compose();
    $message->setSubject($params['subject']);
    $message->setTo($params['to']));
    $message->setFrom($params['from']);

for($i=1;$i<$count;$i++){
 $message->addBcc($emails[$i]->email);
}


$html = $this->getPartial('mymodule/myTemplateHtml',$params);
$message->setBody($html, 'text/html');
$text = $this->getPartial('mymodule/myTemplateTxt',$params);
$message->addPart($text, 'text/plain');    

$this->getMailer()->send($message);

Что я должен добавить для этого, чтобы отправить также ссылку unubscribe_link (уникальная)? Возможно?

1 Ответ

0 голосов
/ 06 сентября 2011

Я полагаю, что вы используете Doctrine. Я не эксперт в том, как сделать это с доктриной, но как хак вы могли бы сделать это:

$emails = NewsletterTable::getInstance()->findAll();    
$count = count($emails);
$message = $this->getMailer()->compose();
    $message->setSubject($params['subject']);
    $message->setTo($params['to']));
    $message->setFrom($params['from']);

$bccEmails = array();
for($i=1;$i<$count;$i++){
    $bccEmails[$emails[$i]] = true;
}
foreach ($bccEmails as $emailAddr => $dummy) {
    $message->addBcc($emailAddr);
}

Идея состоит в том, чтобы создать словарь адресов электронной почты, и дубликаты не будут влиять на него, так как словари не могут иметь повторяющиеся записи. Затем переберите ключи словаря и добавьте их.

...