Documentação do Symfony - versão 3.1
Renderizada do repositório symfony-docs-pt-BR no Github
Os requisitos para enviar e-mails a partir de um sistema de produção diferem da sua configuração de desenvolvimento pois você não quer ficar limitado ao número de e-mails, a taxa de envio ou o endereço do remetente. Assim, usar o Gmail ou serviços semelhantes não é uma opção. Se configurar e manter o seu próprio servidor de e-mail causa dores de cabeça, há uma solução simples: Aproveite a nuvem para enviar os seus e-mails.
Este artigo mostra como é fácil integrar o Simple Email Service (SES) da Amazon no Symfony.
Note
Você pode usar a mesma técnica para outros serviços de e-mail pois, na maioria da vezes, não há nada mais do que a configuração de endpoint SMTP para o Swift Mailer.
Na configuração do Symfony, altere as configurações do Swift Mailer transport
,
host
, port
e encryption
de acordo com as informações fornecidas no
console SES. Crie suas credenciais SMTP individuais no console SES
e conclua a configuração com o username
e password
fornecidos:
1 2 3 4 5 6 7 8 | # app/config/config.yml
swiftmailer:
transport: smtp
host: email-smtp.us-east-1.amazonaws.com
port: 465 # different ports are available, see SES console
encryption: tls # TLS encryption is required
username: AWS_ACCESS_KEY # to be created in the SES console
password: AWS_SECRET_KEY # to be created in the SES console
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!-- app/config/config.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
xsi:schemaLocation="http://symfony.com/schema/dic/services
http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/swiftmailer
http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
<!-- ... -->
<swiftmailer:config
transport="smtp"
host="email-smtp.us-east-1.amazonaws.com"
port="465"
encryption="tls"
username="AWS_ACCESS_KEY"
password="AWS_SECRET_KEY"
/>
</container>
|
1 2 3 4 5 6 7 8 9 | // app/config/config.php
$container->loadFromExtension('swiftmailer', array(
'transport' => 'smtp',
'host' => 'email-smtp.us-east-1.amazonaws.com',
'port' => 465,
'encryption' => 'tls',
'username' => 'AWS_ACCESS_KEY',
'password' => 'AWS_SECRET_KEY',
));
|
Por padrão, as chaves port
e encryption
não estão presentes na configuração da Edição Standard
do Symfony, mas você pode simplesmente adicioná-las conforme necessário.
E é isso, você está pronto para começar a enviar e-mails através da nuvem!
Tip
Se você estiver usando a Edição Standard do Symfony, configure os parâmetros em
parameters.yml
e use-os em seus arquivos de configuração. Isso permite
diferentes configurações do Swift Mailer para cada instalação da sua
aplicação. Por exemplo, usar o Gmail durante o desenvolvimento e a nuvem em
produção.
1 2 3 4 5 6 7 8 9 | # app/config/parameters.yml
parameters:
# ...
mailer_transport: smtp
mailer_host: email-smtp.us-east-1.amazonaws.com
mailer_port: 465 # different ports are available, see SES console
mailer_encryption: tls # TLS encryption is required
mailer_user: AWS_ACCESS_KEY # to be created in the SES console
mailer_password: AWS_SECRET_KEY # to be created in the SES console
|
Note
Se você pretende usar o SES da Amazon, por favor, observe o seguinte:
From
ou Return-Path
(endereço bounce) deve ser confirmado pelo proprietário. Você também pode
confirmar um domínio inteiro;