sendmailでメールサーバのステータス情報の有効期限を設定する




sendmailではメールを送信あるいは転送する際に、
何らかの理由により送信できなかった場合、
いったんキューに保存しておいて、
ある一定間隔で再送を試みる。

その時、sendmailは送信できなかった相手側のサーバに関する
ステータス情報を「Deffered」として保持しておく。

「Deffered」のステータス情報が有効な間は、
そのサーバに対してメール送信をしない。

そのステータス情報の有効期限は、ver8.13.7のデフォルトでは30分。

つまり、デフォルトでは、
一度送信できなかったサーバに対しては、
30分間は送信しようともしない。

sendmailでステータス情報の有効期限を設定する方法は次の通り。

sendmail.mcにて以下を追記。
define(`confTO_HOSTSTATUS', `10m')dnl

後は、sendmail.cfを作り直して、sendmailを再起動して設定反映。

この設定によって、ステータス情報の有効期限を10分にすることができる。

また、この設定によって、sendmail.cfでは以下が変更される。
#O Timeout.hoststatus=30m
   ↓
O Timeout.hoststatus=10m