[注意: このドキュメントにはもっと例が必要です] Postfix VERP サポート ===================== Postfix は要求による可変エンベロープリターンパス(variable envelope return path) アドレスをサポートします。VERP 形式の配送が要求されると、 受信者のアドレスがエンベロープ送信者アドレスに組み込まれた、 カスタマイズされたメッセージのコピーをメッセージのそれぞれの受信者は 受け取ります。 例えば、VERP 形式の配送が要求されると、Postfix は owner-listname@origin から受信者 user@domain 宛のメールを、送信者アドレスを次のようにして 配送します: owner-listname+user=domain@origin こうすることで、配送できなかったメールはリストのオーナーが バウンスメッセージを分析する必要なく、配送できなかった受信者アドレスを 明らかにします。 VERP の概念は qmail MTA と ezmlm メーリングリストマネージャにより 一般化されました。 プロセス全体は4つの設定パラメータで制御されます。 - default_verp_delimiters (デフォルト値: +=) は、Postfix が VERP 形式の配送を要求され、明示的に区切り文字が指定されなかったときに使う VERP の区切り文字を制御します。 - verp_delimiter_filter (デフォルト: -+=) は Postfix が sendmail コマンドラインや SMTP コマンドで VERP の区切り文字として受け付ける 文字を制御します。 e メールアドレスでは (@ や % のように) すでに 特別な意味を持っていたり、(英数字のように) ユーザ名やドメイン名の 一部として使われていたり、非 ASCII 文字か制御文字であるため、 こういった多くの文字は VERP 区切り文字として使ってはいけません。 - authorized_verp_clients (デフォルト値: $mynetworks) は、 VERP 形式の配送の要求が許されるネットワーククライアントを制御します。 例外: Postfix QMQP サーバは独自のアクセス制御メカニズムを使い、 (/usr/sbin/sendmail を使う) ローカルの投稿者は常に許可されます。 ホストを許可するには、その名前や IP アドレス、サブネット (net/mask)、 親 .domain をリストアップします。 - disable_verp_bounces (デフォルト: no) は Postfix が複数の受信者を 持つ VERP メールに対して一つのバウンスレポートを送るか、 受信者毎に一つのバウンスレポートを送るかを制御します。デフォルトの 受信者毎というのは、ezmlm が必要とします。 VERP を majordomo などのメーリングリストで使う ============================================== majordomo などのメーリングリストで VERP を便利に使うために、 次の2つのうちどちらかに従ってメールを投函するように、リスト マネージャを設定するとよいでしょう: sendmail -V -f owner-listname other-arguments... sendmail -V+= -f owner-listname other-arguments... 最初の形式はデフォルトの main.cf VERP 区切り文字を使います。 2番目の形式は明示的に VERP 区切り文字を指定することができます。 例では推奨値が示されています。 このテキストでは、配送できないメールが実在の人に向けられるような、 owner-listname エイリアスが設定されていることを想定しています: /etc/aliases: owner-listname: yourname+listname バウンスを処理するために、拡張アドレスを広く活用しましょう。 + がアドレスと、オプションの拡張アドレスとのセパレータであることと、 拡張アドレスが .forward ファイル名に現れること、拡張アドレスは エイリアス展開を受けると消えてしまうことを Postfix に伝える必要が あります: /etc/postfix/main.cf: recipient_delimiter = + forward_path = $home/.forward${recipient_delimiter}${extension},$home/.forward propagate_unmatched_extensions = canonical, virtual (後ろ2つのパラメータ設定はデフォルトの設定です)。 owner-listname アドレスに送られた全てのメールを処理するような コマンドを持つ、.forward+listname という名前のファイルを設定する 必要があります: ~/.forward+listname: "|/some/where/command ..." このように設定すると、user@domain 宛の配送できないメールは次の アドレスに返されます: owner-listname+user=domain@your.domain これは .forward+listname ファイルのコマンドによって処理されます。 他のものに混じって、メッセージはカプセル化された受信者アドレスを持つ To: ヘッダを含むはずです: To: owner-listname+user=domain@your.domain 読者には、To: ヘッダ行をパースして user=domain 部分を受信者アドレスから 抜き出すという課題が残されています。 Postfix SMTP サーバでの VERP サポート ===================================== Postfix SMTP サーバには VERP 形式の配送ができる、新しい XVERP コマンドがあります。2つの形式の文法が許されます: MAIL FROM: XVERP MAIL FROM: XVERP=+= 最初の形式は main.cf VERP 区切り文字のデフォルトを使い、2番目の 形式はそれを明示的に上書きします。示された値は推奨値です。 Postfix sendmail コマンドでの VERP サポート =========================================== Postfix sendmail コマンドには、VERP 形式の配送を要求するための -V フラグがあります。次の2つの形式のうちどちらかを指定します: sendmail -V -f owner-listname .... sendmail -V+= -f owner-listname .... 最初の形式は main.cf VERP 区切り文字のデフォルトを使い、2番目の 形式はそれを明示的に上書きします。示された値は推奨値です。 Postfix QMQP サーバでの VERP サポート ===================================== Postfix QMQP サーバが listname-@your.domain-@[] のような形式のエンベロープ送信者アドレスを持つメールを受信すると、 qmail/ezmlm は VERP デリミタを "-=" であると想定しているため、それを 使って、Postfix は送信者アドレス listname-user=domain@your.domain を 生成します。