Posted in Postfix
New (neat) postfix 2.3 feature : custom bounce messages
Bounce messages sent by the postfix daemon used to be hardcoded until version 2.3.
This is actually great news for non-english speaking or not email-litterate users.
This is an excerpt of my postfix config :
maximal_queue_lifetime = 1d
delay_warning_time = 1h
bounce_template_file = /etc/postfix/bounce.cf
It is important to know the $delay_warning_time and $maximal_queue_lifetime time values.
Let’s start by copying the default bounce template file :
cp /etc/postfix/bounce.cf.default /etc/postfix/bounce.cf
Edit /etc/postfix/bounce.cf to your needs, here is an example (excerpt) :
Charset: us-ascii
From: MAILER-DAEMON (Mail Delivery System)
Subject: Delayed Mail (still being retried)
Postmaster-Subject: Postmaster Warning: Delayed Mail
Bonjour, je suis votre serveur email.
Mon nom est $myhostname.
##############################################
# CECI EST JUSTE UN MESSAGE D'INFORMATION. #
# VOUS NE DEVEZ PAS RENVOYER VOTRE MESSAGE ! #
##############################################
Un de vos messages n'a pas pu etre delivre pendant $delay_warning_time_hours heure(s).
Le systeme va reesayer jusqu'au moment ou le message sera vieux de $maximal_queue_lifetime_days jour(s).
Si le probleme persiste, verifiez la validite de l'adresse email.
Pour plus d'assistance, contactez un administrateur du systeme.
Si vous contactez l'administrateur, veuillez lui faire parvenir ce qui suit.
Vous pouvez effacer la partie personnelle de votre message.
Merci,
Votre serveur email
EOF
You must pay close attention to the $delay_warning_time_* and $maximal_queue_lifetime_* values in the template file.
Look what Postfix authors have to say about these values :
# The delay template is used when mail is delayed. Note a neat trick:
# the default template displays the delay_warning_time value as hours
# by appending the _hours suffix to the parameter name; it displays
# the maximal_queue_lifetime value as days by appending the _days
# suffix.
#
# Other suffixes are: _seconds, _minutes, _weeks. There are no other
# main.cf parameters that have this special behavior.
It means, if I had like a warning delay time of 30 minutes, I’d need to replace :
“Un de vos messages n’a pas pu etre delivre pendant $delay_warning_time_hours heure(s).”
By
“Un de vos messages n’a pas pu etre delivre pendant $delay_warning_time_minutes minutes(s).”
The same applies to $maximal_queue_lifetime_days.. you get the idea
If postfix finds a mismatch between the values stored in the postfix config and the template config, you’d get a warning message in the logs.
You can test your bounce template by using :
postconf -b bounce.cf
Bonjour, je suis votre serveur email.
Mon nom est mx.domain.be.
##############################################
# CECI EST JUSTE UN MESSAGE D'INFORMATION. #
# VOUS NE DEVEZ PAS RENVOYER VOTRE MESSAGE ! #
##############################################
Un de vos messages n'a pas pu etre delivre pendant 1 heure(s).
Le systeme va reesayer jusqu'au moment ou le message sera vieux de 1 jour(s).
Si le probleme persiste, verifiez la validite de l'adresse email.
Pour plus d'assistance, contactez un administrateur du systeme.
Si vous contactez l'administrateur, veuillez lui faire parvenir ce qui suit.
Vous pouvez effacer la partie personnelle de votre message.
Merci,
Votre serveur email
EOF
More info : http://www.postfix.org/bounce.5.html
Leave Comment
Please consider visiting the partners below if you enjoyed this article :If this post saved you time and money, please consider checking my Amazon wishlist.






