FOSUserbundle отправляет электронную почту правильно, я не могу
Я успешно настроил FOSUserBundle. Он правильно отправляет письмо активации.
Мой config_dev.yml выглядит следующим образом:
... swiftmailer: transport: gmail username: my_username@gmail.com password: my_password disable_delivery: false
Мой parameters.yml выглядит следующим образом:
parameters:
...
mailer_transport: gmail
mailer_host: null
mailer_user: my_username@gmail.com
mailer_password: my_password
Проблема начинается, когда я пытаюсь сделать следующее (очень простое):
$message = \Swift_Message::newInstance()
->setSubject('Please sign up to ProJacked!')
->setFrom('send@example.com')
->setTo($emailaddress)
->setBody($this->renderView('HR/invitationemail.txt.twig'));
$this->get('mailer')->send($message);
Код работает правильно, но электронные письма отправляются "в режиме отладки", поэтому я вижу их в профилировщике, но на самом деле они не отправляются. Что мне не хватает? Я знаю, это что-то супер простое:/
1 ответ
В стандартной версии Symfonyapp/config.yml
Swift по умолчанию помещает электронные письма в память:
# Swiftmailer Configuration
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
spool: { type: memory }
Вы можете удалить spool
линия, чтобы предотвратить спулинг памяти. Вы также можете очистить очередь вручную (что обычно требуется для консольных команд), хотя Symfony утверждает, что после Symfony 2.3+ и Swiftmailer 2.3.5+ этот шаг больше не требуется
$spool = $mailer->getTransport()->getSpool(); // $mailer is the mailer service
$transport = $container->get('swiftmailer.transport.real');
$spool->flushQueue($transport);
Наконец, убедитесь, что вы выполнили действия для Gmail, как описано здесь: http://symfony.com/doc/current/cookbook/email/gmail.html