Отправка пакетных писем с отдельными вложениями / вставка с помощью Swiftmailer
У меня есть следующие функции, которые отправляют пакетные письма
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, используя Transport в качестве параметра конструктора. Создать сообщение. Выполните итерацию по получателям и отправьте сообщение с помощью метода send() объекта Mailer.
Однако при выполнении функций оказывается, что вложения и адреса электронной почты добавляются в последующие сообщения электронной почты.
Мое понимание того, что сообщения и адреса электронной почты будут отправлены однозначно
Мне нужно отправить каждому человеку конкретное вложение, не зная друг друга