Отправка пакетных писем с отдельными вложениями / вставка с помощью Swiftmailer - PullRequest
0 голосов
/ 01 октября 2018

У меня есть следующие функции, которые отправляют пакетные электронные письма

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.

Однако при выполнении функций оказывается, что вложения и адреса электронной почты добавляются кпоследующие электронные письма

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

Мне нужно отправить каждому человеку конкретное вложение, не зная друг о друге

...