Postfix · 7 min read · Sep 26, 2025

Como Configurar Mensagens de Retorno Personalizadas do Postfix

Desde a versão 2.3 do Postfix, o Postfix suporta mensagens de retorno personalizadas. Este guia mostra como configurar mensagens de retorno personalizadas do Postfix e o tempo máximo de vida da fila.

1 Versão do Postfix

Primeiro, você deve descobrir a versão do seu Postfix para ter certeza de que suporta mensagens de retorno personalizadas:

postconf -d | grep mail_version
server2:~# postconf -d | grep mail_version  
mail_version = 3.4.13  
milter_macro_v = $mail_name $mail_version  
server2:~#

Se o seu Postfix for 2.3 ou mais recente, então você está pronto para começar.

2 Definir maximal_queue_lifetime E delay_warning_time

De http://www.postfix.org/postconf.5.html:

maximal_queue_lifetime: O tempo máximo que uma mensagem fica na fila antes de ser enviada de volta como não entregável.

delay_warning_time: O tempo após o qual o remetente recebe os cabeçalhos da mensagem de e-mail que ainda está na fila.

O comando postconf -n mostra as configurações que estão atualmente configuradas em /etc/postfix/main.cf, enquanto o comando postconf -d mostra as configurações padrão que são válidas, a menos que algo diferente seja definido em /etc/postfix/main.cf.

Para descobrir o valor atual de maximal_queue_lifetime, você pode executar

postconf -d | grep maximal_queue_lifetime  
postconf -n | grep maximal_queue_lifetime

Se postconf -n não exibir nada, isso significa que o valor de postconf -d está sendo usado atualmente:

server2:~# postconf -d | grep maximal_queue_lifetime  
maximal_queue_lifetime = 5d  
server2:~# postconf -n | grep maximal_queue_lifetime  
server2:~#

O mesmo se aplica a delay_warning_time:

postconf -d | grep delay_warning_time  
postconf -n | grep delay_warning_time
server2:~# postconf -d | grep delay_warning_time  
delay_warning_time = 0h  
server2:~# postconf -n | grep delay_warning_time  
server2:~#

Se você quiser modificar essas configurações, pode usar o comando postconf -e. Ele gravará as configurações em /etc/postfix/main.cf, por exemplo, assim:

postconf -e 'maximal_queue_lifetime = 1d'  
postconf -e 'delay_warning_time = 0h'

Reinicie o Postfix em seguida:

service postfix restart

A razão pela qual nos importamos com essas duas configurações é que seus valores podem ser usados nas mensagens de retorno personalizadas.

3 Criar Uma Mensagem de Retorno Personalizada

De http://www.postfix.org/bounce.5.html:

O arquivo de modelo pode especificar modelos para e-mails falhados, e-mails atrasados, entrega bem-sucedida ou para verificação de endereço. Esses modelos são nomeados failure_template, delay_template, success_template e verify_template, respectivamente. Você pode, mas não precisa, especificar todos os quatro modelos em um arquivo de modelo de retorno.

Cada modelo começa com “template_name = <

Agora podemos criar o arquivo /etc/postfix/bounce.cf que contém os modelos assim (estou usando todos os quatro modelos aqui, mas você pode deixar de fora os que não precisa). É absolutamente importante que o arquivo termine com uma linha em branco!

nano /etc/postfix/bounce.cf
#
# O modelo de falha é usado quando o e-mail é retornado ao remetente;
# ou o destino rejeitou a mensagem, ou o destino
# não pôde ser alcançado antes que a mensagem expirasse na fila.
#

failure_template = <

Se você fizer isso, inclua este relatório de problemas. Você pode
deletar seu próprio texto da mensagem retornada anexada.

                   O sistema de e-mail
EOF


#
# O modelo de atraso é usado quando o e-mail está atrasado. Note um truque legal:
# o modelo padrão exibe o valor de delay_warning_time como horas
# anexando o sufixo _hours ao nome do parâmetro; ele exibe
# o valor de maximal_queue_lifetime como dias anexando o sufixo _days.
#
# Outros sufixos são: _seconds, _minutes, _weeks. Não há outros
# parâmetros main.cf que tenham esse comportamento especial.
#
# Você precisa ajustar esses sufixos (e o texto ao redor) se
# você tiver configurações muito diferentes para esses parâmetros de tempo.
#

delay_template = <

Se você fizer isso, inclua este relatório de problemas. Você pode
deletar seu próprio texto da mensagem retornada anexada.

                   O sistema de e-mail
EOF


#
# O modelo de sucesso é usado quando o e-mail é entregue na caixa de entrada,
# quando um alias ou lista é expandido, ou quando o e-mail é entregue a um
# sistema que não anuncia suporte a DSN. É um erro especificar
# um Postmaster-Subject: aqui.
#

success_template = <

Você pode personalizar as mensagens ao seu gosto. Nas mensagens, você pode usar todas as variáveis do main.cf (por exemplo, $myhostname). Se você olhar para o delay_template, verá que uso as variáveis adicionais $delay_warning_time_hours e $maximal_queue_lifetime_days. Você também poderia usar $delay_warning_time_seconds, $delay_warning_time_minutes, $delay_warning_time_days, $delay_warning_time_weeks e $maximal_queue_lifetime_seconds, $maximal_queue_lifetime_minutes, $maximal_queue_lifetime_hours, $maximal_queue_lifetime_weeks, mas tenha em mente o que http://www.postfix.org/bounce.5.html explica sobre essas variáveis:

delay_warning_time_suffix: Expande-se no valor do parâmetro delay_warning_time, expresso na unidade de tempo especificada por um sufixo, que é um dos segundos, minutos, horas, dias ou semanas.

maximal_queue_lifetime_suffix: Expande-se no valor do parâmetro maximal_queue_lifetime, expresso na unidade de tempo especificada pelo sufixo. Veja acima sob delay_warning_time para possíveis valores de sufixo.

Então, se você usar a variável $delay_warning_time_minutes em vez de $delay_warning_time_hours em seu modelo, deve segui-la pela palavra “minutos” em vez de “horas”.

Em seguida, configuramos o Postfix para usar os modelos personalizados:

postconf -e 'bounce_template_file = /etc/postfix/bounce.cf'

Para verificar como os modelos ficam quando todas as variáveis são substituídas por seus valores reais, e para garantir que não há erros em seus modelos (por exemplo, uma nova linha faltando no final de /etc/postfix/bounce.cf), execute:

postconf -b /etc/postfix/bounce.cf
server2:~# postconf -b /etc/postfix/bounce.cf  
expanded_failure_text = <  
  
Se você fizer isso, inclua este relatório de problemas. Você pode  
deletar seu próprio texto da mensagem retornada anexada.  
  
                   O sistema de e-mail  
EOF  
  
expanded_delay_text = <  
  
Se você fizer isso, inclua este relatório de problemas. Você pode  
deletar seu próprio texto da mensagem retornada anexada.  
  
                   O sistema de e-mail  
EOF  
  
expanded_success_text = <

Se nenhum erro for exibido, podemos reiniciar o Postfix para que ele possa usar os modelos personalizados:

service postfix restart

4 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.