Postfix · 7 min read · Sep 26, 2025

Come configurare messaggi di rimbalzo personalizzati in Postfix

Dal Postfix versione 2.3, Postfix supporta messaggi di rimbalzo personalizzati. Questa guida mostra come impostare messaggi di rimbalzo personalizzati in Postfix e la durata massima della coda.

1 Versione di Postfix

Prima di tutto, dovresti scoprire la tua versione di Postfix per assicurarti che supporti messaggi di rimbalzo personalizzati:

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 il tuo Postfix è 2.3 o più recente, allora sei a posto.

2 Imposta maximal_queue_lifetime e delay_warning_time

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

maximal_queue_lifetime: Il tempo massimo in cui un messaggio è in coda prima di essere restituito come non consegnabile.

delay_warning_time: Il tempo dopo il quale il mittente riceve le intestazioni del messaggio di posta che è ancora in coda.

Il comando postconf -n mostra le impostazioni attualmente configurate in /etc/postfix/main.cf, mentre il comando postconf -d mostra le impostazioni predefinite che sono valide a meno che non venga impostato qualcos’altro in /etc/postfix/main.cf.

Per scoprire il valore attuale di maximal_queue_lifetime, puoi eseguire

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

Se postconf -n non visualizza nulla, questo significa che il valore di postconf -d è attualmente in uso:

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

Lo stesso vale per 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 desideri modificare queste impostazioni, puoi utilizzare il comando postconf -e. Scriverà le impostazioni in /etc/postfix/main.cf, ad esempio in questo modo:

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

Riavvia Postfix dopo:

service postfix restart

Il motivo per cui ci interessano queste due impostazioni è che i loro valori possono essere utilizzati nei messaggi di rimbalzo personalizzati.

3 Crea un messaggio di rimbalzo personalizzato

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

Il file di template può specificare template per posta non consegnata, posta in ritardo, consegna riuscita o per verifica dell’indirizzo. Questi template sono chiamati failure_template, delay_template, success_template e verify_template, rispettivamente. Puoi, ma non è necessario, specificare tutti e quattro i template in un file di template di rimbalzo.

Ogni template inizia con “template_name = <

Possiamo ora creare il file /etc/postfix/bounce.cf che contiene i template in questo modo (sto usando tutti e quattro i template qui, ma puoi omettere quelli di cui non hai bisogno). È assolutamente importante che il file termini con una riga vuota!

nano /etc/postfix/bounce.cf
#
# Il template di errore viene utilizzato quando la posta viene restituita al mittente;
# o la destinazione ha rifiutato il messaggio, o la destinazione
# non è stata raggiunta prima che il messaggio scadesse nella coda.
#

failure_template = <

Se lo fai, ti preghiamo di includere questo rapporto di problema. Puoi
deliminare il tuo testo dal messaggio restituito allegato.

                   Il sistema di posta
EOF


#
# Il template di ritardo viene utilizzato quando la posta è in ritardo. Nota un trucco carino:
# il template predefinito visualizza il valore delay_warning_time come ore
# aggiungendo il suffisso _hours al nome del parametro; visualizza
# il valore maximal_queue_lifetime come giorni aggiungendo il suffisso _days.
#
# Altri suffissi sono: _seconds, _minutes, _weeks. Non ci sono altri
# parametri main.cf che hanno questo comportamento speciale.
#
# Devi regolare questi suffissi (e il testo circostante) se
# hai impostazioni molto diverse per questi parametri temporali.
#

delay_template = <

Se lo fai, ti preghiamo di includere questo rapporto di problema. Puoi
deliminare il tuo testo dal messaggio restituito allegato.

                   Il sistema di posta
EOF


#
# Il template di successo viene utilizzato quando la posta viene consegnata alla casella di posta,
# quando un alias o una lista viene espansa, o quando la posta viene consegnata a un
# sistema che non annuncia il supporto DSN. È un errore specificare
# un Postmaster-Subject: qui.
#

success_template = <

Puoi personalizzare i messaggi a tuo piacimento. Nei messaggi, puoi usare tutte le variabili di main.cf (ad es. $myhostname). Se dai un’occhiata al delay_template, vedrai che uso le variabili aggiuntive $delay_warning_time_hours e $maximal_queue_lifetime_days. Potresti anche usare $delay_warning_time_seconds, $delay_warning_time_minutes, $delay_warning_time_days, $delay_warning_time_weeks rispettivamente $maximal_queue_lifetime_seconds, $maximal_queue_lifetime_minutes, $maximal_queue_lifetime_hours, $maximal_queue_lifetime_weeks, ma tieni presente quanto spiega http://www.postfix.org/bounce.5.html su queste variabili:

delay_warning_time_suffix: Si espande nel valore del parametro delay_warning_time, espresso nell’unità di tempo specificata da un suffisso, che è uno di secondi, minuti, ore, giorni o settimane.

maximal_queue_lifetime_suffix: Si espande nel valore del parametro maximal_queue_lifetime, espresso nell’unità di tempo specificata dal suffisso. Vedi sopra sotto delay_warning_time per i possibili valori dei suffissi.

Quindi, se usi la variabile $delay_warning_time_minutes invece di $delay_warning_time_hours nel tuo template, dovresti seguirla con la parola “minuti” invece di “ore”.

Successivamente, configuriamo Postfix per utilizzare i template personalizzati:

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

Per controllare come appaiono i template quando tutte le variabili sono sostituite con i loro valori reali, e per assicurarti che non ci siano errori nei tuoi template (ad es. una nuova riga mancante alla fine di /etc/postfix/bounce.cf), esegui:

postconf -b /etc/postfix/bounce.cf
server2:~# postconf -b /etc/postfix/bounce.cf  
expanded_failure_text = <  
  
Se lo fai, ti preghiamo di includere questo rapporto di problema. Puoi  
deliminare il tuo testo dal messaggio restituito allegato.  
  
                   Il sistema di posta  
EOF  
  
expanded_delay_text = <  
  
Se lo fai, ti preghiamo di includere questo rapporto di problema. Puoi  
deliminare il tuo testo dal messaggio restituito allegato.  
  
                   Il sistema di posta  
EOF  
  
expanded_success_text = <

Se non vengono mostrati errori, possiamo riavviare Postfix in modo che possa utilizzare i template personalizzati:

service postfix restart

4 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.