2015-04-22 3 views
2

Я успешно настроил свой symfony webapp для отправки электронной почты с помощью SMTP. Но все мои отправленные сообщения помещаются в каталог spool.Swiftmailer не отправляет сразу

Это должно произойти только в том случае, если в отправке произошла ошибка. Это верно?

Но если я выполняю команду swiftmailer:spool:send --env=prod, все мои письма отправляются правильно.

Почему мой сервер не отправляет электронное письмо сразу? Это потому, что я исправил ошибку? Есть ли способ исправить это?

SwiftMailer:

spool: 
    type: file 
    path: %kernel.root_dir%/spool 

ответ

1

Вы можете заставить промывайте катушку. Например:

$mailer = $this->container->get('mailer'); 
$mailer->send($message); 

$spool = $mailer->getTransport()->getSpool(); 
$transport = $this->container->get('swiftmailer.transport.real'); 
if ($spool and $transport) $spool->flushQueue($transport); 

Проверьте также конфигурация катушки в config.yml.

Если у вас есть:

swiftmailer: 
    .... 
    spool:  { type: memory } 

письма присылают на ядре прекратить событие (так в конце страницы)

+0

Да, я делаю это в некоторых случаях. Но когда «FOSUserBundle» отправляет электронное письмо, очередь не очищается. Я использую spool typy как 'file'. Таким образом, адрес электронной почты отправляется только при ручном сбросе. В моей старой машине это было сделано автоматически. – Victor

+0

, и вы не хотите использовать память? (по крайней мере для FOSUserBundle) – griotteau

+0

Зачем использовать 'файл' и' память'? – Victor

Смежные вопросы