Я пытаюсь отправить электронные письма с помощью Swiftmailer с Symfony 2.
Это простая функция в контроллере
public function sendEmailAction() { $name = 'Test'; $mailer = $this->get('mailer'); $message = $mailer->createMessage() ->setSubject('Ciao') ->setFrom('send@example.com') ->setTo('recipient@example.com') ->setBody($this->renderView('dashboard/email.html.twig',array('name' => $name)), 'text/html'); $mailer->send($message); return $this->redirectToRoute('dashboard');
В параметрах.yml у меня есть следующая конфигурация
parameters: database_host: 127.0.0.1 database_port: null database_name: symfony database_user: root database_password: null mailer_transport: smtp mailer_host: 127.0.0.1 mailer_user: null mailer_password: null secret: e23a8d7b075fa3c7e56b10186a24cf2790a3169a
И это config.yml one
# Swiftmailer Configuration swiftmailer: transport: "%mailer_transport%" host: "%mailer_host%" username: "%mailer_user%" password: "%mailer_password%" spool: { type: memory }
К сожалению, я не могу отправлять электронные письма …
Пожалуйста, ознакомьтесь с документацией «Как отправить электронное письмо»
Swift Mailer предоставляет ряд методов для отправки электронной почты, в том числе с использованием SMTP-сервера, с использованием локальной установки sendmail или даже с использованием учетной записи GMail.
Пример с почтовым транспортом
mailer_transport: mail mailer_host: 127.0.0.1 mailer_user: null mailer_password: null
Пример с smtp
mailer_transport: smtp mailer_encryption: ssl mailer_auth_mode: login mailer_host: smtp.gmail.com mailer_user: your@gmail.com mailer_password: *******
Пример с sendmail : прочитайте это
mailer_transport: sendmail mailer_host: /usr/bin/sendmail # wherever your mail is #mailer_user: ~ #mailer_password: ~
Пример с учетной записью GMail
mailer_transport: gmail mailer_encryption: ssl mailer_auth_mode: login mailer_host: smtp.gmail.com mailer_user: your@gmail.com mailer_password: *******
И используйте его вот так:
$message = \Swift_Message::newInstance() ->setSubject('Hello Email') ->setFrom('from@example.com') ->setTo('to@example.com') ->setBody( $this->renderView( 'HelloBundle:Hello:email.txt.twig', array('name' => $name) ) ) ; $this->get('mailer')->send($message);