Ive недавно перенес этот веб-сайт (сделанный с Symfony 2) на новый сервер, и мы решили пойти с Google Apps для отправки электронной почты.Symfony 2: Swiftmailer не отправляет, нет ошибок
После некоторых проблем с подключением Ive удалось настроить его. Я знаю, это работает, потому что я могу отправить по электронной почте в командной строке с помощью:
app/console swiftmailer:email:send --subject="Test" --body="test" --from="xxxx" --to="yyyyy"
Он работает, электронная почта отправляется и я получаю его немедленно.
Проблема: внутри сайта, не работает. Вот код:
$mailer = $this->get('mailer');
$message = $mailer->createMessage()
->setSubject('Caderno Mágico: Redefinir Senha')
->setFrom(array($this->container->getParameter('server_mail_address') => 'Caderno Mágico'))
->setTo($usuario[0]->getEmail())
->setBody($this->renderView('Emails/recuperar_conta.html.twig', array('username' => $usuario_selecionado->getUsername(), 'dados'=>$hash)), 'text/html');
$mailer->send($message);
Похоже, работала раньше. В электронной почте пользователя есть тот же адрес электронной почты, который я использовал в тесте командной строки. И конфигурации используется там должен быть тот же, который используется, когда я посылаю его, хотя в командной строке:
swiftmailer:
transport: smtp
host: smtp.gmail.com
username: yyyy
password: ******
auth_mode: login
port: 465
encryption: ssl
spool: { type: memory }
swiftmailer.plugins.loggerplugin:
class: 'Swift_Plugins_LoggerPlugin'
arguments: ['@swiftmailer.plugins.loggerplugin.logger']
tags: [{ name: 'swiftmailer.default.plugin' }]
swiftmailer.plugins.loggerplugin.logger:
class: 'Swift_Plugins_Loggers_EchoLogger'
arguments: [false]
Там нет ошибок на любом журнале, и «отправить» метод возвращения верно. Это просто не работает. (Ive пытался с и без катушки: никакой разницы). Не отправляется электронное письмо.
Ive установил этот плагин «EchoLogger», и он работает в командной строке. Я вижу все сообщения и ошибки на выходе, что помогло мне настроить конфигурацию и устранить проблемы с подключением. Но, похоже, что ничего не делает, когда выполняется на сервере, я не вижу никаких сообщений на экране или в любых журналах.
Ive даже пытался писать все значения в коде так же, как они находятся на моей командной строки теста, чтобы исключить возможность что-то не ошибиться там, и до сих пор ничего:
$mailer = $this->get('mailer');
$message = $mailer->createMessage()
->setSubject('Test')
->setFrom('yyyyy')
->setTo('xxxxx')
->setBody('test');
$mailer->send($message);
Так что я могу делать? Что может быть неправильным? Я даже не знаю, как отладить это. Почему он работает при запуске в командной строке и не работает при запуске внутри веб-сайта? Есть ли способ или любое место, чтобы увидеть эти сообщения EchoLogger, когда код запускается на сервере?
Я сделал. Я забыл эту часть кода (отредактированный вопрос) –