Relay SMTP por um smarthost: enviar e-mail a partir de um VPS ou de uma aplicação

E-mail·· 29 visualizações· 4 min de leitura

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

VEJA TAMBÉM

Enviar e-mail por SMTP ou por uma API de e-mail: qual serve a sua aplicação

PTR e DNS reverso: porque o seu e-mail depende disso

Portas e firewall num VPS: porque a aplicação não é alcançável

Criar o registo SPF, passo a passo

Portas SMTP 465, 587 e 25: SSL, STARTTLS e qual usar

Testar IMAP, POP3 e SMTP à mão com openssl s_client: um guia para utilizadores técnicos

PRODUTO RECOMENDADO

Servidor VPS com acesso root

Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde $8.40/mês (plano de 3 anos, com cupão)

Ver planos
Esta resposta foi útil? A sua resposta ajuda-nos a melhorar este artigo.