Postfix 設定 · 3 min read · Sep 26, 2025

カスタム Postfix バウンスメッセージの設定方法

Postfix バージョン 2.3 以降、Postfix はカスタムバウンスメッセージをサポートしています。このガイドでは、カスタム Postfix バウンスメッセージと最大キューライフタイムの設定方法を示します。

1 Postfix バージョン

まず、カスタムバウンスメッセージをサポートしているか確認するために、Postfix のバージョンを調べる必要があります:

postconf -d | grep mail_version
server2:~# 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_lifetime

postconf -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_time
server2:~# 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.cf
server2:~# 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 restart

4 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。