Symfony2 – Enviando e-mails com SwiftMailer

Se o seu aplicativo está enviando e-mails para os usuários, você provavelmente usará o SwiftMailer para fazer isso.

O primeiro passo é escrever o arquivo de configuração. Neste exemplo, meu ambiente de desenvolvimento local usa um smtp do gmail e, ao mesmo tempo, eu usaria as configurações de stmp do servidor padrão na produção.

Seu app / config / parameters.yml será semelhante a este:

# Mail setup for development environment
dev_mailer_transport
: gmail
dev_mailer_host
: null
dev_mailer_user
: example@gmail.com
dev_mailer_password
: somepassword

# Mail setup for production environment
prod_mailer_transport
: smtp
prod_mailer_host
: localhost
prod_mailer_user
: null
prod_mailer_password
: null

Agora você precisa modificar seu arquivo config_dev.yml:

# Swiftmailer Configuration
swiftmailer
:
transport
: %dev_mailer_transport%
host
: %dev_mailer_host%
username
: %dev_mailer_user%
password
: %dev_mailer_password%
spool
: { type: memory }

e seu config_prod.yml também:

# Swiftmailer Configuration
swiftmailer
:
transport
: %prod_mailer_transport%
host
: %prod_mailer_host%
username
: %prod_mailer_user%
password
: %prod_mailer_password%
spool
: { type: memory }

Agora você pode enviar e-mails de seu aplicativo. Aqui está um exemplo de envio:

# Setup the message
$message
= Swift_Message::newInstance()
->setSubject('Some Subject')
->setFrom('example@gmail.com')
->setTo('any@whatever.com')
->setBody('ExampleBundle:Default:mail.html.twig', 'text/html');

# Send the message
$this
->get('mailer')
->send($message);