Postfix 設定 · 3 min read · Sep 26, 2025
カスタム Postfix バウンスメッセージの設定方法

Postfix バージョン 2.3 以降、Postfix はカスタムバウンスメッセージをサポートしています。このガイドでは、カスタム Postfix バウンスメッセージと最大キューライフタイムの設定方法を示します。
1 Postfix バージョン
まず、カスタムバウンスメッセージをサポートしているか確認するために、Postfix のバージョンを調べる必要があります:
postconf -d | grep mail_versionserver2:~# postconf -d | grep mail_version
mail_version = 3.4.13
milter_macro_v = $mail_name $mail_version
server2:~#Postfix が 2.3 以上であれば、問題ありません。
2 maximal_queue_lifetime と delay_warning_time の設定
http://www.postfix.org/postconf.5.html から:
maximal_queue_lifetime: メッセージが配信不能として返送されるまでの最大キュー時間。
delay_warning_time: 送信者がまだキューにあるメールのメッセージヘッダーを受け取るまでの時間。
postconf -n コマンドは、/etc/postfix/main.cf に現在設定されている設定を表示し、postconf -d コマンドは、/etc/postfix/main.cf に別の設定がない限り有効なデフォルト設定を表示します。
現在の maximal_queue_lifetime の値を調べるには、次のコマンドを実行できます。
postconf -d | grep maximal_queue_lifetime
postconf -n | grep maximal_queue_lifetimepostconf -n が何も表示しない場合、これは postconf -d の値が現在使用されていることを意味します:
server2:~# postconf -d | grep maximal_queue_lifetime
maximal_queue_lifetime = 5d
server2:~# postconf -n | grep maximal_queue_lifetime
server2:~#delay_warning_time についても同様です:
postconf -d | grep delay_warning_time
postconf -n | grep delay_warning_timeserver2:~# postconf -d | grep delay_warning_time
delay_warning_time = 0h
server2:~# postconf -n | grep delay_warning_time
server2:~#これらの設定を変更したい場合は、postconf -e コマンドを使用できます。これにより、設定が /etc/postfix/main.cf に書き込まれます。例えば、次のように:
postconf -e 'maximal_queue_lifetime = 1d'
postconf -e 'delay_warning_time = 0h'その後、Postfix を再起動します:
service postfix restartこれらの2つの設定が重要な理由は、それらの値がカスタムバウンスメッセージで使用できるからです。
3 カスタムバウンスメッセージの作成
http://www.postfix.org/bounce.5.html から:
テンプレートファイルは、失敗したメール、遅延したメール、成功した配信、またはアドレス確認のためのテンプレートを指定できます。これらのテンプレートは、それぞれ failure_template、delay_template、success_template、verify_template と名付けられています。バウンステンプレートファイルにすべての4つのテンプレートを指定する必要はありませんが、指定することもできます。
各テンプレートは「template_name = <
これで、/etc/postfix/bounce.cf というファイルを作成し、次のようにテンプレートを含めることができます(ここではすべての4つのテンプレートを使用していますが、必要ないものは省略できます)。ファイルは必ず空行で終わることが重要です!
nano /etc/postfix/bounce.cf#
# 失敗テンプレートは、メールが送信者に返送されるときに使用されます;
# 宛先がメッセージを拒否したか、メッセージがキューで期限切れになる前に宛先に到達できなかった場合です。
#
failure_template = <
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
EOF
#
# 遅延テンプレートは、メールが遅延しているときに使用されます。 neat trick:
# デフォルトテンプレートは、delay_warning_time 値を時間として表示します。
# パラメータ名に _hours サフィックスを追加します; 最大キューライフタイム値を日数として表示します。
# _days サフィックスを追加します。
#
# 他のサフィックスは: _seconds, _minutes, _weeks です。これらの特別な動作を持つ main.cf パラメータは他にありません。
#
# これらの時間パラメータに対して非常に異なる設定がある場合は、
# これらのサフィックス(および周囲のテキスト)を調整する必要があります。
#
delay_template = <
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
EOF
#
# 成功テンプレートは、メールがメールボックスに配信されたとき、
# エイリアスやリストが展開されたとき、またはメールが
# DSN サポートを発表しないシステムに配信されたときに使用されます。ここで Postmaster-Subject: を指定することはエラーです。
#
success_template = < メッセージはお好みに合わせてカスタマイズできます。メッセージ内では、すべての main.cf 変数(例: $myhostname)を使用できます。delay_template を見ると、追加の変数 $delay_warning_time_hours と $maximal_queue_lifetime_days を使用していることがわかります。$delay_warning_time_seconds、$delay_warning_time_minutes、$delay_warning_time_days、$delay_warning_time_weeks、$maximal_queue_lifetime_seconds、$maximal_queue_lifetime_minutes、$maximal_queue_lifetime_hours、$maximal_queue_lifetime_weeks を使用することもできますが、http://www.postfix.org/bounce.5.html でこれらの変数について説明されていることを考慮してください。
delay_warning_time_suffix: delay_warning_time パラメータの値を、サフィックスで指定された時間単位で拡張します。サフィックスは、秒、分、時間、日、または週のいずれかです。
maximal_queue_lifetime_suffix: maximal_queue_lifetime パラメータの値を、サフィックスで指定された時間単位で拡張します。delay_warning_time の下で可能なサフィックス値を参照してください。
したがって、テンプレート内で $delay_warning_time_minutes を使用する場合は、「hours」の代わりに「minutes」という単語を続ける必要があります。
次に、Postfix にカスタムテンプレートを使用するように設定します:
postconf -e 'bounce_template_file = /etc/postfix/bounce.cf'すべての変数が実際の値に置き換えられたときのテンプレートの見た目を確認し、テンプレートにエラーがないことを確認するために(例: /etc/postfix/bounce.cf の最後に改行がない)、次のコマンドを実行します:
postconf -b /etc/postfix/bounce.cfserver2:~# postconf -b /etc/postfix/bounce.cf
expanded_failure_text = <
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
EOF
expanded_delay_text = <
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
EOF
expanded_success_text = < エラーが表示されない場合、カスタムテンプレートを使用できるように Postfix を再起動します:
service postfix restart4 リンク
- Postfix バウンスマニュアルページ: http://www.postfix.org/bounce.5.html
- Postfix 設定パラメータ: http://www.postfix.org/postconf.5.html
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。