自動転送時の「不転送レポート先」を管理者に設定したときの仕様について
自動転送時の「不転送レポート先」を管理者アカウントに設定しているとき、管理者アカウントが存在すれば何の問題もありませんが、実際の管理者アカウントが存在しない場合、動作に支障をきたす結果になってしまいます。
ここでは、その理由について、自動転送時の「不転送レポート先」を管理者に設定したときの仕様から説明します。
自動転送時の「不転送レポート先」設定では、自動転送メールについてエンベロープFROM をメールサーバが書き換えるように動作します。「不転送レポート先」設定によって、どのようにエンベロープFROMが書き換えられるかは以下の通りです。
- 管理者 →エンベロープFROM を管理者アカウントに書き換え
- 送信者 →エンベロープFROM は書き換えずそのまま
- 返信しない →エンベロープFROM を空欄<>に書き換え
- 返信先指定(任意)→エンベロープFROM を任意アカウントに書き換え
ただし、書き換えるのは、エンベロープFROM であり、メールヘッダのFrom:は書き換えません。自動転送メールを受け取った側から、メールヘッダのFrom:を見ても特に変更されていないので区別はつきません。
上記によって、自動転送時にうまく転送ができなかったときのエラーメールは、それぞれの設定に応じて届くように考慮されています。従って、「不転送レポート先」を管理者に設定したときには、実在さえしていれば、管理者アカウントにエラーメールが正しく送られる仕組みです。
これらのこととは別に、内部(ローカル)アカウントどうしの(自動転送でない)通常の送信は、メールプロトコルのSMTPを使わず、システム側のファイルコピーで処理されます。このことにより、内部アカウントどうしの通常送信は、確実さの向上と高速化がはかられています。一方、内部(ローカル)アカウント宛に自動転送を設定したときには、自動転送時には、ファイルコピーで処理されず、メールプロトコルを使って、SMTP受信サービス(epstrd)が再度受信する仕組みで処理されます。通常の送信と自動転送時の動きが異なります。
従って、内部(ローカル)アカウントどうしへの自動転送を設定している場合で、「不転送レポート先」を管理者に設定していて、その管理者アカウントが万が一、アカウントマネージャに登録されていない状態では、次のような流れになります。
- 自動転送時の「不転送レポート先」設定に基づき、自動転送メールについて、エンベロープFROM をメールサーバが管理者アカウントに書き換える。
- 自動転送メールは、メールプロトコルを使って処理されるため、エンベロープFROMが管理者アカウントになったメールをSMTP受信サービス(epstrd)が再度受け付けるが、アカウントが存在しないため、無効なユーザーアカウントで送ろうとしていると見なされ、SMTP受信サービス(epstrd)により550番台の永続的なエラーを返し、受領が拒絶される。
- 自分自身のメールサーバであるが、拒絶をされた側のSMTP配送サービス(epstdd)は、設定に基づいてリトライを繰り返し、配送がうまく行かないことになる。
(※epstddの詳細ダイアログの「リトライ回数(受信拒否)」の設定に依存。)
結論として、管理者アカウントが作られていないときに、自動転送時の「不転送レポート先」を管理者に設定している状態では、仕様上からいって自動転送が正しく行えません。
従って、自動転送時の「不転送レポート先」を管理者に設定するときは、事前に必ず、設定済みの管理者アカウントがあることことを確認してください。