Este artigo é para quem tem um VPS ou servidor com acesso root, ou uma aplicação que envia e-mail. A resposta curta: em vez de o seu servidor entregar o correio directamente a cada destino pela porta 25, entrega-o a um servidor de e-mail que já é de confiança (o smarthost), com utilizador e palavra-passe, pela 587 ou 465. É esse servidor que faz a entrega final. Resolve três problemas de uma vez: a porta 25 de saída bloqueada pela rede, o IP do VPS sem reputação nem DNS reverso, e o SPF que não inclui o VPS.
Envio directo ou por smarthost
| O quê |
Envio directo (porta 25) |
Por smarthost (587 ou 465) |
| Quem entrega ao destino |
O próprio VPS, ligando-se ao MX de cada destinatário. |
O servidor de e-mail onde tem a caixa, ou um serviço de envio. |
| Porta de saída |
25, que muitas redes e fornecedores bloqueiam à saída. |
587 (STARTTLS) ou 465 (SSL/TLS), as de envio autenticado. |
| Reputação e DNS reverso |
São os do IP do VPS. Um IP novo ou sem PTR acaba muitas vezes no spam: PTR e DNS reverso. |
São os do smarthost. |
| SPF e DKIM |
O SPF do domínio tem de incluir o IP do VPS, e a assinatura DKIM tem de ser feita no VPS. |
Valem os do servidor que entrega, se o domínio já os tem configurados para ele. |
| Limites |
Os do VPS e da reputação do IP. |
Os do smarthost: uma caixa normal não é um serviço de envio em massa. |
Configurar o Postfix com um smarthost
| 1 |
Crie uma caixa só para o envio (por exemplo, um endereço de notificações) e use-a como remetente. Muitos servidores recusam ou marcam como suspeito um remetente diferente da conta autenticada.
|
|
| 2 |
Confirme que o VPS chega à porta: openssl s_client -starttls smtp -connect mail.oseudominio:587 -quiet Se fica à espera sem resposta, é a firewall do VPS ou da rede: portas e firewall num VPS.
|
|
| 3 |
No ficheiro /etc/postfix/main.cf, acrescente (ou altere) estas linhas: relayhost = [mail.oseudominio]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = encrypt O parêntese recto diz ao Postfix para usar o nome tal como está, sem ir procurar o MX dele.
|
|
| 4 |
Guarde as credenciais em /etc/postfix/sasl_passwd, numa só linha, e proteja o ficheiro: [mail.oseudominio]:587 envio@oseudominio:a-palavra-passe chmod 600 /etc/postfix/sasl_passwd postmap /etc/postfix/sasl_passwd systemctl reload postfix Nas distribuições da família Red Hat o Postfix precisa do pacote cyrus-sasl-plain para autenticar; nas Debian e Ubuntu, do libsasl2-modules.
|
|
| 5 |
Envie um teste e leia o registo (/var/log/maillog ou /var/log/mail.log, conforme a distribuição, ou journalctl -u postfix). Procure relay=mail.oseudominio e status=sent. Um erro 535 é utilizador ou palavra-passe; um «no mechanism available» é o pacote SASL em falta.
|
|
|
Faça cópia do main.cf antes de lhe mexer e recarregue o Postfix só depois de confirmar a sintaxe com postfix check. E use o smarthost para o correio do sistema e da aplicação, não para newsletters: uma caixa de e-mail que envia em massa é bloqueada, e leva consigo o envio normal do domínio.
|
|
Numa aplicação não precisa do Postfix: quase todas aceitam um servidor SMTP nas definições (servidor, porta, utilizador, palavra-passe). É o mesmo smarthost, configurado na própria aplicação. Para escolher entre SMTP e um serviço com API, veja enviar por SMTP ou por uma API de e-mail.
|
|
O relay pelo smarthost não autentica ou o correio continua no spam? Envie-nos as linhas do registo do Postfix, sem a palavra-passe.
Abrir pedido de suporte
|
Onde ver na sua conta
Saber se a porta 25 de saída está aberta no seu VPS é coisa que se testa num minuto, por isso teste. A partir do VPS, tente abrir uma ligação à porta 25 de qualquer servidor de correio (por exemplo com nc -vz seguido do nome do servidor e de 25). Se ficar pendurado e esgotar o tempo, a porta 25 está bloqueada nesse caminho, e o caminho do smarthost deste artigo é o certo. Se quiser que o confirmemos, abra um ticket com o VPS e o resultado.
- A nossa caixa como smarthost. As contas de e-mail são ilimitadas em todos os planos de hospedagem, por isso crie uma só para o envio. No cPanel, em «Contas de e-mail», as configurações do cliente de correio (Connect Devices) mostram o nome do servidor, as portas seguras e o nome de utilizador; use esses valores no Postfix.
- O teto. Tudo o que o VPS enviar por ela conta para o limite por hora do plano: 100 no Pro, 200 no Plus, 300 no Ultra. Serve para avisos de aplicações, não para envio em massa.
PRODUTO RECOMENDADO Servidor VPS com acesso root Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 7.560,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |