Модуль рассылки в Symfony 1.4 - PullRequest
       33

Модуль рассылки в Symfony 1.4

0 голосов
/ 23 ноября 2010

Я разрабатываю модуль новостной рассылки на своем веб-сайте и начинаю с версии Symfony 1.4.Я хотел бы отправить свои электронные письма нескольким получателям.

Я попробовал это простое решение (со стратегией доставки в реальном времени):

$message = $this->getMailer()->compose();
$message->setSubject('My subject');
$message->setTo(array('email1@domain.com', 'email2@domain.com'));
$message->setFrom('expeditor@domain.com', 'Name of expeditor');
$html = $this->getPartial('module/action', array('var'=>$var));
$message->setBody($html, 'text/html');
$number = $this->getMailer()->send($message);

Письмо было отправлено, но в списке получателей вы можете видеть всех пользователей, а не только вас ...

Более того, возможно, получателей много.Поэтому, возможно, мне понадобится список ожидания, чтобы избежать ошибки максимального времени выполнения?

Можете ли вы помочь найти лучшее решение с примером, если это возможно?

Спасибо

1 Ответ

1 голос
/ 23 ноября 2010

Во-первых, чтобы скрыть список получателей, вы должны использовать функцию setBcc () Swiftmailer вместо setTo ().Это добавляет адреса электронной почты в качестве получателей скрытой копии, что означает, что они не смогут «видеть» друг друга.Кроме того, добавьте свой собственный адрес (например, noreply@domain.com) в качестве адреса setTo ().

Во-вторых, максимальное время выполнения не будет проблемой, если вы добавите всех получателей только к одному электронному адресу.mail, поскольку он будет подключаться к соответствующему SMTP / почтовому модулю только один раз, когда вы вызываете $ this-> getMailer () -> send ($ message).

Однако я бы посоветовал вам взглянуть на функциональность спула, поскольку он предлагает гораздо лучшую производительность и позволяет фоновому процессу позаботиться о фактическом отправлении электронной почты (вы просто добавляете таблицу в свою базу данных и даете ей ждать, пока cronjob отправит письмо).Измените приведенный выше код, чтобы просмотреть всех получателей, создать для каждого получателя по одной электронной почте и добавить его в спул.Таким образом, вы также можете использовать функцию setTo () для получения правильного отображения адреса получателя.

Подробнее о функции буфера читайте в книге More With Symfony .

...