Um site envia mais e-mail do que parece: o aviso de um formulário de contacto, a confirmação de uma encomenda, a ligação para recuperar a palavra-passe. Por defeito o servidor envia-os ele próprio, "em bruto", e os grandes fornecedores de e-mail desconfiam de um servidor qualquer: muitos acabam no spam ou diretamente rejeitados. A solução habitual é o site entregar os seus e-mails a um serviço especializado, e o Amazon SES é um dos mais baratos e fiáveis.
A maioria das aplicações, WordPress incluído, sabe enviar por SMTP, o protocolo clássico do e-mail. O SES oferece exatamente isso: um servidor SMTP com um utilizador e uma palavra-passe. Este guia cria-os e põe-nos no site.
Antes de começar: o que significa cada coisa
- SES
- Simple Email Service, o serviço da Amazon para que as aplicações enviem e-mail.
- SMTP
- O protocolo com que os programas enviam e-mail para um servidor de e-mail. Quase qualquer aplicação o admite: só precisa do endereço do servidor, da porta, de um utilizador e de uma palavra-passe.
- Credenciais SMTP
- O utilizador e a palavra-passe que o SES lhe dá para enviar por SMTP. Não são o seu utilizador da AWS: o SES cria uns específicos.
- Identidade verificada
- Um domínio ou um endereço de e-mail que demonstrou à Amazon que é seu. Só se pode enviar "a partir de" uma identidade verificada.
- Sandbox
- O modo de testes com que começa toda a conta SES: só permite enviar para endereços verificados. Para um site real há que pedir a saída (guia nesta secção).
- Porta 587 e TLS
- A porta é a "porta" do servidor pela qual se envia; a 587 é a padrão para envio autenticado. TLS (ou STARTTLS) é a cifra da ligação.
- Região
- Lugar do mundo onde está o seu SES. O endereço do servidor SMTP inclui a região.
Passo a passo
Confirme que o remetente está verificado
Na consola do SES, escolha a região que vai usar (por exemplo Irlanda,
eu-west-1) e entre em Identidades. Deve aparecer verificado o domínio a partir do qual o site envia (midominio.com) ou, pelo menos, o endereço exato (web@midominio.com). Se não há nada, verifique o domínio seguindo o guia de DKIM, SPF e DMARC desta secção: sem isso, o SES não deixará enviar e os e-mails iriam para o spam de qualquer modo.Crie as credenciais SMTP
No menu do SES, Configuração de SMTP. Anote o endereço do servidor, que tem a forma
email-smtp.eu-west-1.amazonaws.com, e a porta 587. Carregue em Criar credenciais SMTP: leva-o ao IAM com um nome de utilizador proposto (algo comoses-smtp-user); pode mudá-lo parasmtp-web-empresapara saber de que é. Crie o utilizador e, no último ecrã, descarregue ou copie o utilizador e a palavra-passe SMTP. A palavra-passe só se mostra esta vez. Guarde-a num gestor de palavras-passe.Configure o WordPress
Instale um plugin de envio por SMTP (há vários muito usados; procure "SMTP" no instalador de plugins). Na configuração dele escolha "Outro SMTP" ou "Amazon SES por SMTP" e preencha: servidor
email-smtp.eu-west-1.amazonaws.com, porta587, cifra TLS, autenticação ativada, utilizador e palavra-passe SMTP do passo 2. Endereço e nome do remetente: um endereço do seu domínio verificado (web@midominio.com) e o nome da sua empresa. Guarde.Ou configure qualquer outra aplicação
Os mesmos cinco dados servem para qualquer programa que envie e-mail: servidor, porta 587, TLS, utilizador e palavra-passe. Numa aplicação própria costumam ir num ficheiro de configuração ou em variáveis de ambiente; não os escreva no código. Se a aplicação o permitir, acrescente também um cabeçalho ou etiqueta que identifique de que site vêm os e-mails: ajudá-lo-á quando tiver vários.
Envie um teste
Os plugins de SMTP têm um botão de "enviar e-mail de teste". Envie-o para uma conta sua. Se ainda está no sandbox do SES, essa conta deve ser um endereço verificado no SES; se não, o SES rejeitará o envio com uma mensagem clara. Abra o e-mail recebido e veja que o remetente é o seu e que não caiu no spam.
Peça para sair do sandbox e vigie os envios
Para que o site possa escrever para qualquer endereço, peça à AWS a saída do sandbox (guia nesta secção). Depois, no SES, Painel da conta, verá quantos e-mails saem por dia e que percentagem é devolvida ou marcada como spam. Veja esse ecrã de vez em quando: é a saúde do e-mail do seu site.
O que pode correr mal
O e-mail de teste falha com "Email address is not verified"
Ou o remetente não é uma identidade verificada nessa região, ou está no sandbox e o destinatário também não o é. Confirme a região do servidor SMTP e a da identidade: devem coincidir.
Falha com "authentication credentials invalid"
As credenciais SMTP não são as chaves de acesso normais do IAM, embora se pareçam: há que usar exatamente a palavra-passe SMTP que o SES gerou. Se a perdeu, crie umas novas e apague o utilizador antigo.
Envia-se, mas chega ao spam
Falta autenticação do domínio (DKIM, SPF, DMARC) ou o conteúdo parece spam. Siga o guia de verificação do domínio; depois, confirme que o remetente é do seu domínio e não um gratuito.
O servidor não consegue ligar pela porta 587
Alguns alojamentos bloqueiam as portas de e-mail de saída. Experimente a 2587 (o SES também a aceita com TLS) ou peça ao seu fornecedor que a abra. Em máquinas Lightsail e EC2 novas, a AWS limita a porta 25, mas a 587 funciona.
No Simplio
No Simplio o ecrã E-mail (SES) mostra-lhe as suas identidades por região e diz-lhe se o domínio está verificado e que registos DNS faltam; com um botão gera umas credenciais SMTP com permissões só de envio e mostra-lhe os cinco dados para colar no WordPress ou na sua aplicação. Depois vê os envios, devoluções e queixas de todas as suas contas no mesmo sítio, com aviso por e-mail se a percentagem de devoluções subir.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Criar credenciais e configurá-las | SES, IAM, o plugin do site: 3 ferramentas, 6 passos, uns 20 minutos | Botão "Credenciais SMTP" no ecrã E-mail: dá-lhe os 5 dados prontos a colar, 1 minuto |
| Saber se o e-mail do site sai bem | Entrar no SES, região por região | Enviados, devoluções e queixas de todas as suas contas num ecrã, com aviso se dispararem |
| Vários sites e várias contas | Repetir tudo em cada uma | O mesmo, na mesma lista |