SMTP Relay com Postfix e SparkPost

O SparkPost é mais uma das muitas alternativas para envio de email usando SMTP externo. Já publiquei aqui no site vários tutoriais falando sobre o assunto, porém decidi publicar mais este por dois motivos abaixo apresentados.

A Mandrill, que na minha opinião é o melhor serviço de envio (por pertencer à MailChimp), está encerrando as contas gratuitas neste mês deixando muita gente com a opção de comprar créditos ou migrar de serviço. Sendo esse o primeiro motivo de eu escrever este tutorial, a própria Mandrill indica a SparkPost. E o segundo motivo é que a SparkPost deixa enviar 100 mil emails por mês com limite de 10 mil diários na conta gratuita.

Acabei de testar o serviço de SMTP Relay pelo Postfix e está entregando normalmente em contas do Hotmail. Nas últimas semanas usei a Mailgun que também tem uma taxa alta de entrega, mas com um limite mensal bem inferior.

SMTP Relay com Postfix e SparkPost

* Este tutorial foi testado em nosso servidor Debian 8 Jessie com ISPConfig 3 e Postfix, clique aqui e veja como instalar. Consideraremos que a sua tabela DNS de domínio já esteja configurada e devidamente propagada.

Crie uma conta gratuita no SparkPost e configure o domínio

A Os passos para criar a conta são praticamente os mesmos dos demais sites, acesse este link e registre-se clicando em “Try for Free“: https://www.sparkpost.com/

Após registrar e confirmar a conta clique no seu Dashboard que terá um passo a passo do que deverá ser feito para ativar o envio.

B Create a sending domain: Adicione o seu domínio que enviará os emails, siga o exemplo abaixo:

» Clique em NEW DOMAIN

» Digite o seu domínio, exemplo: fatorbinario.com

» Clique em Add Domain

C Verify your sending domain: Após adicionar o domínio você deverá configurar a tabela DNS e confirmar que ele é seu indicando um email para verificação que deverá estar no mesmo domínio. Após alterar a tabela DNS e confirmar o email clicando no link enviado clique nos botões de “teste” para validar. Caso tenha problemas para adicionar registros na tabela DNS veja nossos tutoriais de como fazer.

D Get an API key for sending: Clique em NEW API KEY. Uma chave será criada, anote-a ou copie para outro lugar porque ela não será exibida novamente no Dashboard e teremos que usá-la no Postfix mais adiante.

2 Configuração do Postfix: Opção de SMTP Relay seletivo

A Edite o arquivo /etc/postfix/main.cf e modifique/adicione as seguintes linhas (os números das linhas são referentes ao arquivo original, se você alterou o arquivo por algum motivo encontre-as):

# Linha 23:

smtpd_use_tls = yes
# Modifique a linha 35 para um valor nulo

relayhost =
# Adicione estas linhas ao final (lembre-se de deixar uma linha vazia no final do arquivo para prevenir problemas). Isso ira ativar o SASL para autenticação externa

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_maps
smtp_sasl_security_options = noanonymous

B Em seguida edite o arquivo /etc/postfix/sasl_passwd. *Se o arquivo não existir crie-o com o seguinte comando “> touch /etc/postfix/sasl_passwd“, MAS SOMENTE  EXECUTE O COMANDO touch SE O ARQUIVO NÃO EXISTIR ou você poderá danificar outras configurações. Dentro do arquivo adicione a seguinte linha:

NOTA Importante: No painel do SparkPost clique em Account / SMTP Relay para ver suas credenciais de acesso, note que o usuário será sempre SMTP_Injection, o que muda é a chave API.

[smtp.sparkpostmail.com]:587 SMTP_Injection:chave_API_criada_acima

C Edite o arquivo /etc/postfix/relayhost_maps. *Se o arquivo não existir crie-o com o seguinte comando “> touch /etc/postfix/relayhost_maps“, MAS SOMENTE  EXECUTE O COMANDO touch SE O ARQUIVO NÃO EXISTIR ou você poderá danificar outras configurações. Dentro do arquivo adicione a seguinte linha (substituindo seudominio.com pelo nome do seu domínio adicionado no passo 1B):

@seudominio.com [smtp.sparkpostmail.com]:587

*Como eu já expliquei em outros tutoriais: você pode adicionar emails ou domínios de forma seletiva neste arquivo. Exemplo: [email protected] para que somente emails de newsletter sejam enviados pelo SparkPost, os demais poderiam usar um outro serviço ou, se não estiverem relacionados neste arquivo, serão enviados diretamente pelo servidor.

*Seguindo os passos acima você poderá adicionar quantos domínios quiser, mas lembre-se de validá-los na SparkPost e de relacionar eles no arquivo relayhost_maps. Pode-se ainda criar uma chave API para cada domínio para melhor controle.

D Salve os arquivos e execute os comandos finais do Postfix para usar as novas configurações:

> postmap /etc/postfix/sasl_passwd

> postmap /etc/postfix/relayhost_maps

/etc/init.d/postfix restart

Teste enviando alguns emails, no cabeçalho deverá aparecer que foi enviado usando a SparkPost. Caso o email não seja entregue verifique o arquivo de log /var/log/mail.log e veja nas últimas linhas se houve algum problema.

Índice do Tutorial:

©2014-2024 Fator Binário - Todos os direitos reservados

Fazer login com suas credenciais

Esqueceu sua senha?