2014-01-23 8 views
1

У меня есть веб-приложение, сделанное с Symfony 2.4, и я использую SwiftMailer для отправки писем.Swiftmailer не отправляет электронную почту (только магазин в катушке)

Я использую подобный почтовая доставка транспорт sendmail.

Когда пользователь отправляет электронное письмо, я не получаю это письмо. Но если я делаю в командной строке:

$php app/console swiftmailer:spool:send --env=prod 

Получаю все электронные письма.

¿Что я могу сделать?

Большое спасибо!

---- Редактировать ----

Я удалил все ссылки на намотать в моем файле конфигурации, но проблема сохраняется.

---- Редактирование 2 ----

config.yml

mailer_transport: sendmail 
mailer_host: **** 
mailer_user: ***** 
mailer_password: **** 
+0

Try docs: http://symfony.com/doc/current/cookbook/email/spool.html – Lee

+0

Спасибо, но я хочу удалить это, я хочу, чтобы человек отправил мне электронное письмо, это не хранится ни в какой катушке :/ – user2794692

ответ

2

Удаление катушки линии от конфигурации (parameters.yml я верю? Я никогда не использовал Symfony, так что я интерпретация документов).

Как только вы удалили любое упоминание о катушке из своей конфигурации, оно должно прекратить буферизацию и отправить немедленно.

Сказав это, причина буферизации заключается в том, что он отправляет электронное письмо в конце выполнения запроса, чтобы у вас не было производительности (замедленные запросы), возможно, с помощью функции выключения. .. единственная причина, по которой эта функция не будет выполняться, и поэтому ваша электронная почта не отправляется, - это если сценарий заканчивается раньше (т. е. исключение die/exit или uncatched), поэтому вы можете посмотреть на устранение основной причины, а не на исправление вокруг него.

Edit: руководство вровень (фонд это на примере командной строки сценария, я отредактировал его на то, что я думаю, что должно заставить его работать на вас ....)

// now manually flush the queue 
$container = $this->getContainer(); 
$mailer = $this->get('mailer'); 
$spool = $mailer->getTransport()->getSpool(); 
$transport = $container->get('swiftmailer.transport.real'); 

$spool->flushQueue($transport); 

http://symfony.com/doc/current/cookbook/console/sending_emails.html

+0

Спасибо, но я удалил все ссылки на spool в моем файле конфигурации, и электронные письма не отправляют – user2794692

+0

Можете ли вы проверить, что они еще не наматываются на runn которые отправляют команду через командную строку. После выполнения этой команды, если вы затем получите электронное письмо, они все еще буферизуются, и нам нужно решить, почему – Lee

+0

Когда я использую командную строку, я получаю все электронные письма, хранящиеся в очереди. Затем, если другой пользователь отправит мне электронное письмо, это снова будет храниться в очереди, и мне нужно снова запустить командную строку. – user2794692