У меня есть следующие функции, которые отправляет пакетные письма
public function sendAttendeeEmails(Swift_Plugins_DecoratorPlugin $decorator, int $per_emails = 5, int $pause = 5) : int
{
$this->mailer->registerPlugin($decorator)
// ->registerPlugin(new \Swift_Plugins_AntiFloodPlugin($pre_emails, $pause))
// ->registerPlugin(new \Swift_Plugins_ThrottlerPlugin(
// $per_emails, \Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE
// ))
;
array_walk($this->getAttendees(), [ $this, 'sendEmail' ]);
return empty($this->failed)? $this->sent : -1;
}
В моей функции «sendEmail»
protected function sendEmail($recipient, $email) {
$message = new Swift_Message();
$
$message->attach(
Swift_Attachment::fromPath(
ASSETS_FOLDER . "/{$recipient['code']}.pdf",
'application/pdf'
)->setFilename("{$recipient['code']}-attachment.pdf")
);
$this->message->setTo([ $email => $recipient['name']]);
$this->sent = $this->mailer->send($this->message, $this->failed);
}
На основании документации
Создать Транспорт из одного из предоставленных Транспортов —
Swift_SmtpTransport, Swift_SendmailTransport или один из агрегатов
Транспорты. Создайте экземпляр класса Swift_Mailer, используя
Транспорт как параметр конструктора. Создать сообщение. повторять
через получателей и отправьте сообщение с помощью метода send () на
Почтовый объект.
Однако при выполнении функций оказывается, что вложения и адреса электронной почты добавляются в последующие электронные письма
Мое понимание того, что сообщения и адреса электронной почты будут отправлены однозначно
Мне нужно отправить каждому человеку определенное вложение, не зная друг друга
Задача ещё не решена.
Других решений пока нет …