Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Solucionar falhas do Postfix não enviando emails no Debian 12

14 min de leitura  ·  Guia técnico

Postfix não enviando emails no Debian 12 é um problema que ocorre por diversas causas: porta 25 bloqueada pelo provedor, configuração incorreta do main.cf, fila travada, ausência de registros SPF/DKIM ou erro de DNS reverso. Identifique a causa exata nos logs e corrija cada ponto sistematicamente. Veja abaixo como diagnosticar e resolver cada cenário.

Pré-requisitos

  • Acesso root ou sudo ao servidor Debian 12 (Bookworm)
  • Postfix instalado (versão 3.7.x, padrão do Debian 12)
  • Acesso SSH ao servidor — consulte como acessar servidores VPS Linux da AviraHost se necessário
  • Domínio com zona DNS gerenciável para configurar SPF e DNS reverso
  • Utilitários telnet, netcat e mailutils instalados

Diagnóstico inicial: verificar logs e status do Postfix no Debian 12

O primeiro passo para solucionar o Postfix não enviando emails é confirmar se o serviço está ativo e inspecionar os logs de entrega. O arquivo principal de log no Debian 12 é /var/log/mail.log.

  1. Verifique o status do serviço:
systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/lib/systemd/system/postfix.service; enabled)
     Active: active (running) since Mon 2024-01-15 10:00:00 UTC
  1. Inspecione os últimos eventos do log de email:
tail -n 50 /var/log/mail.log

Procure por linhas contendo status=deferred, status=bounced ou connect to com erros de conexão. Cada linha indica o ID da mensagem, o destinatário e o motivo exato da falha.

  1. Verifique a fila de mensagens presas:
postqueue -p
-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
A1B2C3D4E5F     512 Mon Jan 15 10:05:00  [email protected]
(connect to gmail-smtp-in.l.google.com[142.250.x.x]:25: Connection timed out)
                                         [email protected]

Se a fila estiver vazia e os emails não chegam, o problema pode ser de autenticação ou bloqueio silencioso. Se houver mensagens presas, o motivo entre parênteses indica a causa.

  1. Monitore o log em tempo real enquanto testa o envio:
tail -f /var/log/mail.log

Verificar se a porta 25 está bloqueada pelo provedor

O bloqueio da porta 25 de saída é a causa mais comum de falha de entrega em servidores VPS. Provedores de hospedagem frequentemente bloqueiam essa porta para evitar spam, sem aviso explícito.

Teste a conectividade de saída na porta 25 a partir do próprio servidor:

nc -zv smtp.gmail.com 25
nc: connect to smtp.gmail.com port 25 (tcp) failed: Connection timed out

Se o resultado for Connection timed out ou Connection refused, a porta 25 está bloqueada. Teste também com telnet:

telnet smtp.gmail.com 25

Se a porta 25 estiver bloqueada, você tem duas alternativas:

  • Usar porta 587 com STARTTLS: configure o Postfix para usar um relay SMTP autenticado (como Gmail, SendGrid ou Mailgun) na porta 587
  • Usar porta 465 com SSL/TLS: alternativa para provedores que suportam SMTPS
  • Solicitar desbloqueio ao provedor: abra um chamado justificando o uso legítimo do servidor de email

Para configurar um relay SMTP externo via porta 587, edite o /etc/postfix/main.cf:

relayhost = [smtp.seurelaysmtp.com]: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
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Crie o arquivo de credenciais:

echo "[smtp.seurelaysmtp.com]:587 [email protected]:SUASENHA" > /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Recarregue o Postfix:

systemctl reload postfix

Corrigir o arquivo main.cf: parâmetros essenciais do Postfix

Configurações incorretas no /etc/postfix/main.cf causam rejeição de mensagens, loop de entrega ou falha silenciosa. Revise os parâmetros fundamentais:

nano /etc/postfix/main.cf

Verifique e ajuste os seguintes parâmetros:

# Nome do servidor de email (deve corresponder ao DNS reverso)
myhostname = mail.seudominio.com

# Domínio de origem das mensagens
myorigin = /etc/mailname

# Domínios para os quais o Postfix aceita email localmente
mydestination = $myhostname, seudominio.com, localhost.seudominio.com, localhost

# Redes confiáveis (apenas localhost por padrão — mais seguro)
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

# Interface de escuta
inet_interfaces = all

# Protocolos aceitos
inet_protocols = ipv4

# Restrições de relay
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

Após editar, verifique a sintaxe antes de recarregar:

postfix check
# Sem saída = configuração válida
systemctl reload postfix

Confirme que o arquivo /etc/mailname contém o domínio correto:

cat /etc/mailname
seudominio.com

Se o conteúdo estiver incorreto, edite diretamente:

echo "seudominio.com" > /etc/mailname

Configurar SPF, DNS reverso e DKIM para evitar rejeição

Mesmo com o Postfix funcionando corretamente, emails podem ser rejeitados pelo servidor de destino por ausência de autenticação. Os registros de autenticação de email são verificados antes da entrega.

DNS Reverso (PTR): o IP do servidor deve ter um registro PTR que aponte para o hostname configurado no myhostname. Verifique:

dig -x SEU_IP_DO_SERVIDOR +short
mail.seudominio.com.

Se o resultado não corresponder ao myhostname, solicite ao provedor a configuração do DNS reverso. Consulte como configurar DNS personalizado para seu domínio na AviraHost para orientações sobre gerenciamento de zona DNS.

Registro SPF: adicione um registro TXT na zona DNS do domínio:

v=spf1 ip4:SEU_IP_DO_SERVIDOR ~all

Verifique se o SPF está publicado:

dig TXT seudominio.com +short
"v=spf1 ip4:203.0.113.10 ~all"

DKIM com OpenDKIM: instale e configure o OpenDKIM para assinar mensagens:

apt install opendkim opendkim-tools -y
mkdir -p /etc/opendkim/keys/seudominio.com
opendkim-genkey -b 2048 -d seudominio.com -D /etc/opendkim/keys/seudominio.com -s mail -v

Publique o conteúdo de /etc/opendkim/keys/seudominio.com/mail.txt como registro TXT no DNS com o nome mail._domainkey.seudominio.com.

Configure o /etc/opendkim.conf e integre ao Postfix adicionando ao main.cf:

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Testar o envio de email pelo terminal no Debian 12

Após ajustar as configurações, valide o funcionamento do servidor de email com um teste direto pelo terminal. Instale o pacote mailutils se ainda não estiver presente:

apt install mailutils -y

Envie um email de teste:

echo "Corpo do email de teste" | mail -s "Teste Postfix Debian 12" [email protected]

Monitore o log imediatamente após o envio:

tail -n 20 /var/log/mail.log
Jan 15 10:30:01 servidor postfix/smtp[12345]: A1B2C3D4E5F: to=, relay=gmail-smtp-in.l.google.com[142.250.x.x]:25, delay=1.2, delays=0.1/0/0.5/0.6, dsn=2.0.0, status=sent (250 2.0.0 OK)

A linha status=sent confirma entrega bem-sucedida. Se aparecer status=deferred, o log mostrará o motivo exato entre parênteses. Se aparecer status=bounced, o servidor de destino rejeitou a mensagem com um código de erro específico.

Para forçar o reenvio imediato de todas as mensagens em fila:

postqueue -f

Atenção: o comando a seguir remove permanentemente todas as mensagens diferidas da fila. Use apenas se tiver certeza de que as mensagens não devem ser reenviadas.

postsuper -d ALL deferred

Para remover uma mensagem específica pelo ID:

postsuper -d A1B2C3D4E5F

Problemas comuns e como resolver

Sintoma: emails chegam à pasta de spam ou são rejeitados com código 550

Causa: ausência de registros SPF, DKIM ou DMARC, ou o IP do servidor está em uma lista de bloqueio (blacklist). Servidores de destino como Gmail e Outlook verificam esses registros antes de aceitar mensagens.
Solução: verifique se o IP está em blacklists usando ferramentas como MXToolbox. Publique os registros SPF e DKIM conforme descrito na seção anterior. Adicione também um registro DMARC: v=DMARC1; p=none; rua=mailto:[email protected]. Se o IP estiver em blacklist, solicite remoção diretamente no site da lista correspondente.

Sintoma: erro "relay access denied" ao tentar enviar email

Causa: o Postfix está recusando retransmitir mensagens porque o cliente não está autenticado ou o IP de origem não está no parâmetro mynetworks. Isso ocorre quando uma aplicação tenta usar o Postfix como relay sem autenticação SASL configurada.
Solução: verifique o parâmetro mynetworks no /etc/postfix/main.cf e adicione o IP da aplicação se necessário. Para aplicações locais, 127.0.0.0/8 já deve cobrir. Se a aplicação está em outro servidor, configure autenticação SASL ou adicione o IP específico ao mynetworks. Nunca adicione blocos de IP amplos sem necessidade.

Sintoma: Postfix inicia mas não escuta na porta 25

Causa: o parâmetro inet_interfaces pode estar configurado como loopback-only, limitando o Postfix a aceitar conexões apenas do localhost. Isso é comum em instalações padrão do Debian 12.
Solução: edite o /etc/postfix/main.cf e altere inet_interfaces = loopback-only para inet_interfaces = all. Verifique com ss -tlnp | grep :25 após recarregar o serviço. O output deve mostrar 0.0.0.0:25 em vez de 127.0.0.1:25.

Sintoma: erro "Connection timed out" ao tentar entregar para servidores externos

Causa: além do bloqueio da porta 25 pelo provedor, pode haver um problema de resolução DNS no servidor. O Postfix precisa resolver os registros MX dos domínios de destino para entregar mensagens.
Solução: teste a resolução DNS com dig MX gmail.com. Se falhar, verifique o arquivo /etc/resolv.conf e confirme que os servidores DNS estão acessíveis. Configure servidores DNS confiáveis como 8.8.8.8 e 1.1.1.1 se necessário. Verifique também se o firewall local não está bloqueando saída na porta 53.

Sintoma: emails enviados mas não recebidos pelo destinatário (sem bounce)

Causa: o log mostra status=sent, mas o destinatário não recebe. Isso indica que o servidor de destino aceitou a mensagem mas a descartou silenciosamente (spam silencioso) ou a entregou em pasta de lixo eletrônico.
Solução: verifique a pasta de spam do destinatário. Confirme que o From: do email usa um endereço do domínio com SPF válido. Teste com ferramentas como mail-tester.com para obter uma pontuação de reputação do email. Considere implementar DKIM e DMARC para aumentar a confiabilidade das mensagens.

Perguntas frequentes sobre Postfix não enviando emails

Por que o Postfix não envia emails mesmo com o serviço ativo?

O serviço ativo não garante entrega: a porta 25 pode estar bloqueada pelo provedor, o registro SPF pode estar ausente ou incorreto, ou a fila pode estar travada por um erro de DNS reverso. Execute postqueue -p para ver mensagens presas e mailq para inspecionar o motivo do atraso. O log em /var/log/mail.log sempre contém a causa exata da falha de entrega.

Como verificar se a porta 25 está bloqueada no Debian 12?

Execute nc -zv smtp.gmail.com 25 ou telnet smtp.gmail.com 25 a partir do servidor. Se a conexão falhar imediatamente com timeout, a porta 25 de saída está bloqueada pelo provedor de hospedagem. Nesse caso, use a porta 587 com STARTTLS ou 465 com SSL/TLS configurando um relay SMTP externo como alternativa viável.

O que significa o erro "relay access denied" no Postfix?

Esse erro indica que o Postfix está recusando retransmitir mensagens para domínios externos porque o cliente não está autenticado ou o IP de origem não está na lista de redes confiáveis. Verifique os parâmetros mynetworks e smtpd_relay_restrictions no arquivo /etc/postfix/main.cf. Para aplicações locais, certifique-se de que o IP 127.0.0.1 está incluído no bloco mynetworks.

Como forçar o Postfix a reenviar emails presos na fila?

Execute postqueue -f para tentar reenviar todas as mensagens em fila imediatamente. Para remover mensagens específicas, use postsuper -d ID_DA_MENSAGEM. Para limpar toda a fila de diferidos, execute postsuper -d ALL deferred — use este último comando com cautela, pois as mensagens removidas não poderão ser recuperadas.

Como testar se o Postfix está enviando corretamente pelo terminal?

Use o comando echo "Teste" | mail -s "Assunto teste" [email protected] e em seguida verifique o log com tail -f /var/log/mail.log. Uma entrega bem-sucedida mostrará a linha status=sent no log. Se aparecer status=deferred ou status=bounced, o log indicará a causa exata com o código de erro retornado pelo servidor de destino.

Conclusão

  • Comece sempre pelos logs: tail -f /var/log/mail.log e postqueue -p revelam a causa exata em segundos — não tente corrigir às cegas.
  • Valide porta 25 e autenticação: confirme que a porta 25 não está bloqueada pelo provedor e que SPF, DKIM e DNS reverso estão configurados corretamente para garantir entregabilidade.
  • Teste após cada alteração: use postfix check antes de recarregar e envie um email de teste monitorando o log em tempo real para confirmar que cada ajuste surtiu efeito.

Leia também

Precisa de ajuda com Postfix e email no servidor?

Configurar um servidor de email confiável exige atenção a múltiplas camadas: configuração do Postfix, registros DNS, reputação de IP e autenticação. Um VPS com suporte técnico especializado pode simplificar esse processo significativamente.

Conheça os planos de VPS da AviraHost com suporte para configuração de email

  • 0 Os usuários acharam isso útil
  • Postfix, email, Debian 12, SMTP, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Guia Completo para Configurar E-mails Profissionais no cPanel

Guia Completo para Configurar E-mails Profissionais no cPanel Ter um e-mail profissional é...

Como Configurar DNS Personalizado para Seu Domínio na AviraHost

Como Configurar DNS Personalizado para Seu Domínio na AviraHost Ter um DNS personalizado é...

Como gerenciar um domínio.

Adicione um domínio a sua conta, utilizando nosso painel de gerenciar domínios, Você pode...

Solucionar problemas de resolução de nomes DNS em VPS Linux e servidor dedicado

Introdução Falhas na resolução de nomes DNS podem causar lentidão, indisponibilidade de sites e...

Checklist para Configurar e Testar Limite de E-mails Enviados por Hora no VPS Linux e Servidor Dedicado

Introdução Controlar o volume de e-mails enviados por hora é fundamental para evitar bloqueios...