Servidor de Emails: Configurando um Relay SMTP Externo

Aprenda como configurar um serviço externo de SMTP Relay para enviar emails de um servidor VPS Linux usando o Postfix. Em nossos tutoriais anteriores mostramos como prevenir que mensagens de email enviadas pelo servidor sejam marcadas como SPAM, configurando o registro SPF e a chave DKIM, garantindo a entrega da maioria dos emails sem problemas. Porém, em alguns casos a mensagem pode ser bloqueada pelo Hotmail (de todos os testes que fizemos durante quase um mês o Hotmail é o que mais apresenta problemas para receber emails).

No mundo todo o problema persiste, alguns tutoriais falam em incluir um registro DMARC e preencher os relatórios JMRP e SNDS da Microsoft, mas eu posso assegurar que isso também não garantirá 100% os recebimentos porque fizemos testes comprovando.

Com a ajuda de um colaborador aqui do Fator Binário, descobrimos que inclusive domínios recém registrados têm o mesmo bloqueio (algumas pessoas pensam que os emails não são entregues simplesmente porque aquele domínio pertence a um spammer, o que não é verdade).

Em contato com a DigitalOcean, nos disseram não haver qualquer bloqueio ao IP do nosso Droplet e que todas as configurações do servidor estavam corretas incluindo as entradas DNS, disseram ainda que uma outra solução seria configurar um serviço de SMTP Relay externo. Esse tipo de serviço modifica o cabeçalho da mensagem, alterando a origem mas mantendo o remetente, e garante que o email seja entregue.  Em nossos testes as entregas foram 100%, por isso estamos apresentando este tutorial.

Mostraremos abaixo como configurar o Mandrill que pertence à MailChimp, e no final do artigo publicaremos como, opcionalmente, usar o MailJet ou qualquer outro serviço de forma seletiva para cada endereço/domínio de email no servidor. *Este tutorial tem como referência de sistema um servidor Debian 7 Wheezy + Postfix + Dovecot.

Configurando o Postfix com Mandrill

1 Crie uma conta no Mandrill clicando neste link.

A Digite o seu E-mail, e uma senha que deverá ter pelo menos 10 dígitos. Em seguida marque a opção “I agree to the Mandrill Terms of Use” e clique no botão “Get Started” para criar a conta.

B Após fazer o login na conta aparecerá uma janela pop-up solicitando dados adicionais “Tell Us A Little About Yourself“, pode ignorar clicando em “No Thanks“.

C Em seguida mostrará o seu “Dashboard” com o resumo da conta, clique no segundo botão azul “Get API Keys“, irá solicitar que você digite a senha da conta novamente.

D Na próxima tela aparecerá uma mensagem “You don’t have any API keys”, clique em “Add API Key“. O sistema irá gerar uma API automaticamente. Retornaremos nessa tela mais tarde, mas primeiro vamos configurar o Postfix para usar a API.

 

2 Configure o Postfix para enviar emails usando a API do Mandrill.

A Edite o arquivo /etc/postfix/main.cf:

#Certifique-se que esta linha esteja no arquivo:
smtpd_use_tls = yes
 
# Substitua a linha 35 relayhost = : 
relayhost = [smtp.mandrillapp.com]
 
# Adicione estas linhas, deixando uma linha em branco no final:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

B Crie e edite o arquivo /etc/postfix/sasl_passwd:

> touch /etc/postfix/sasl_passwd

Insira o seguinte conteúdo, substituindo [email protected] pelo seu email de cadastro no Mandrill e NUMERO_DA_API pelo número de sua API criada no passo 1D:

[smtp.mandrillapp.com] [email protected]:NUMERO_DA_API

C Execute o comando postmap para criar a tabela de senhas e autenticação, em seguida reinicie o Postfix:

> postmap /etc/postfix/sasl_passwd

> /etc/init.d/postfix restart

 

3 Retorne ao site Mandrill para validar o seu site e os registros DNS.

A Faça login na sua conta e clique em “Settings” na barra de ferramentas da esquerda, em seguida clique em “Domains” / “Sending Domains” no menu superior. Se você ainda não tiver nenhum domínio validado irá solicitar para cadastrar um, digite desta forma: fatorbinario.com

B Aparecerá uma lista com os domínios. No lado direito da lista clique no botão “Verify a Domain“, digite um email que pertence ao domínio (por exemplo contato@fatorbinario.com). Acesse o email e clique no link de validação enviado.

C Após validar o domínio clique no botão “View DKIM/SPF setup instructions“. Aparecerá duas chaves DKIM e uma chave SPF, só usaremos a chave DKIM que aparece no primeiro campo.

D Crie uma nova entrada no seu DNS com o Tipo: TXT, Nome: mandrill._domainkey.fatorbinario.com. (*Note o “ponto final” no nome, substitua pelo seu domínio), e no campo Texto: copie e cole a chave que aparece na tela do passo 3C, colocando entre aspas duplas. Você pode adicionar múltiplas chaves DKIM na tabela DNS sem problemas, por exemplo se você já adicionou uma chave seguindo nosso outro tutorial.

E Modifique a entrada SPF na tabela DNS (você pode ter várias entradas DKIM no DNS mas somente uma entrada SPF é permitida). Para isso copie a chave atual e inclua o SPF do Mandrill, exemplo: “v=spf1 mx include:spf.mailjet.com include:spf.mandrillapp.com ~all” (*Note que na minha entrada SPF eu configurei o mx do servidor, o MailJet e o Mandrill, todos na mesma linha). Na DigitalOcean não tem como alterar a entrada, então apague o SPF atual e adicione outra de Tipo: TXT, Nome: @ e no campo Texto: cole o texto do exemplo com as aspas “v=spf1 mx include:spf.mailjet.com include:spf.mandrillapp.com ~all”.

* Se tiver dúvidas de como adicionar registros DNS siga nosso tutorial de como configurar a zona DNS.

F Valide as entradas DNS, ao lado do seu domínio na lista clique no botão “Test DNS Settings“. Se você fez todos os passos corretamente as entradas validarão e o seu domínio está pronto para enviar emails autenticados pelo Mandrill.

* O Mandrill permite que sejam enviados gratuitamente 250 emails por hora com um limite de 12.000 por mês (o limite de 12.000/mês foi alterado para um trial de 2.000 mensagens no total, após isso tem que adquirir um plano – o preço básico mensal é $9,95 para até 25.000 envios). Envie alguns emails e verifique o progresso clicando em “Dashboard” no menu da conta.

 

∴ O necessário para enviar email através de SMTP Relay está configurado e pronto. Somente abra a próxima seção se você optar por usar múltiplos serviços de envio no mesmo servidor.

OPCIONAL: Configurar o Postfix para enviar emails de forma seletiva por SMTP Relay (<em>Clique para abrir</em>)

É mais fácil explicar a finalidade dessa seção se dermos um exemplo prático. Aqui no Fator Binário optei por enviar os emails de newsletter e dos formulários de contato através do Mandrill, mantive um email de suporte que envia pelo MailJet e ainda tenho os demais emails de controle sendo enviados pelo próprio servidor que também está configurado com SPF e DKIM (exemplos: [email protected], [email protected]).

* A criação de uma conta no MailJet não está no escopo deste tutorial mas para quem tiver dúvidas favor perguntar nos comentários, breve vamos incluir um Fórum aqui no site onde será mais fácil tirar dúvidas e trocar ideias.

1 Edite o arquivo /etc/postfix/main.cf substituindo a linha (35) “relayhost” para um valor em branco e adicionando uma nova linha abaixo com “sender_dependent_relayhost_maps”, desta forma:

* Note que são 2 linhas, a primeira é “relayhost =” sem nada após o sinal de igual.

relayhost = 
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_maps

 

2 Edite o arquivo /etc/postfix/sasl_passwd e adicione as linhas de autenticação para todos os serviços de SMTP Relay que você tiver conta, seguindo as diretivas de cada serviço (por exemplo o Mandrill pede para colocar o email com o número da API, o MailJet tem um código próprio, e assim por diante..). Adicione uma nova linha para cada serviço.

 

3 Crie e edite o arquivo /etc/postfix/relayhost_maps, onde listará os emails direcionando para cada serviço:

> touch /etc/postfix/relayhost_maps

Em seguida insira os emails apontando para os Relays externos, abaixo segue um exemplo:

[email protected]      [smtp.mandrillapp.com]
[email protected]   [smtp.mandrillapp.com]
[email protected]      in-v3.mailjet.com

# Se quiser incluir um dominio inteiro descomente a proxima linha e configure com seus dados:
# @fatorbinario.com         [smtp.mandrillapp.com]

* Note que os demais emails não listados acima serão enviados diretamente pelo servidor, por exemplo [email protected].

 

4 Reinicie o Postfix e recrie as tabelas de autenticação:

> postmap /etc/postfix/sasl_passwd
> postmap /etc/postfix/relayhost_maps
> /etc/init.d/postfix restart

Pronto. Agora você já pode enviar emails por SMTP Relay externo de forma seletiva. Não esqueça de incluir emails/domínios novos na lista quando adicioná-los ao servidor.

NOTAS:

  • A opção de SMTP Relay seletivo é dificil de gerenciar se você for uma revenda de sites, mas pode-se manter da maneira como expliquei acima e incluir na lista somente os domínios que tiverem problemas com envios. Lembre-se que a maioria dos emails são entregues normalmente pelo próprio servidor sem necessidade de Relay externo.

*Este artigo foi escrito com a colaboração de C. Rogério ( m310.com.br ) – *Colabore com o Fator Binário e o seu nome/website poderá aparecer aqui, entre em contato para saber mais.


 Servidor de Emails: Configurando um Relay SMTP Externo
Tutorial ISPConfig 3 〉〉 ÍNDICE ANT PROX

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

Fazer login com suas credenciais

Esqueceu sua senha?