Swiftmailer в Messenger __invoke метод не отправляет почту - PullRequest
0 голосов
/ 07 января 2019

В настоящее время у меня проблема с использованием \ Swift_Mailer в Symfony MessageHandlerInterface. В методе __invoke этого класса я хотел бы отправить электронное письмо с Swift_Mailer.

/**
 * @param MailMessage $mailMessage
 */
public function __invoke(MailMessage $mailMessage)
{
    try {
        $message = (new \Swift_Message('You Got Mail!'))
            ->setFrom('no-reply@example.be' , 'No reply')
            ->setTo('development@example.be')
            ->setBody(
                'hello world',
                'text/plain'
            )
        ;

        $successfulRecipientsCount = $this->mailer->send($message, $failedRecipients);
        if ($successfulRecipientsCount < 1 || count($failedRecipients) > 0) {
            throw new \Exception('error sending mail');
        }
    }  catch (\Exception $e) {
        $this->logger->error( $e->getMessage());
    }
}

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

Я знаю, что контроллер Symfony отправляет событие kernel.terminate, и Swift_Mailer использует это событие для отправки электронных писем.

Как я могу отправить событие kernel.terminate в магическом методе __invoke из MessengerHandlerInterface из Symfony?

...