メーリングリスト管理者の方へ: JCA-NETのメーリングリストから登録者に確実に配信メールを届けるために

1. 前書き

近年多くの利用者を抱えるYahoo, Microsoft(outlook, hotmail等), Google(Gmail,Google workspace等) などのメールサービス提供事業者では迷惑メールへの対抗手段として、メールの送信者に対してSPF, DKIM, DMARC といった送信者ドメイン認証の設定を求めるようになっており、これに伴ってインターネットでのメールサービス全体でも程度や適用方法に違いはありますが、これら送信者ドメイン認証を行っていない送信者からのメールを受け取らないというポリシーが標準的になりつつあります。

これらの送信者ドメイン認証の技術は古くからのメーリングリストの仕組み、メーリングリストの投稿用メールアドレスにて受け取ったメールのヘッダ送信者 From: を書き換えずにSubject: 等を加工した後に登録者にそのメールを配信してまわるという仕組みについての配慮をあまり行わずに作られたものであるため、メーリングリストからの各登録者への配信においては昔ながらの方法のままでは送信者ドメイン認証を要求してくるようなドメインへはメールを届けることができなくなってしまっております。

JCA-NETで運用しているメーリングリストシステムMailmanでは古くからのメーリングリストの仕組みをそのまま残しつつ、そうした送信者ドメイン認証に対応するための動作変更を行うような拡張が採用されております。しかしながら、そうした動作変更では登録者に届くメールの見た目自体が変わってしまうこともあって過去からの互換性を重視しているため、それらの機能を有効にするにはメーリングリストの管理者自身が自分の手でメーリングリストの設定を変更する必要があります。

また、メーリングリストの登録者が自動転送を行っており、その転送先の受信ポリシーによってメールが届かなくなっている場合もありますので、それを回避する方法についても触れます。

2.メーリングリストの配信メールが登録者に届かない主な理由

登録者のメールアドレスに誤りがなく、またメーリングリストからではなく直接メールを送った場合にはその登録者にメールが届くのにメーリングリストからの配信メールがその登録者には届かないような場合に考えられる理由には以下のようなものがあります。

  • メーリングリストでSubjectにプレフィクスを入れる書き換えや添付ファイルの除去、本文内の先頭や末尾に案内文の挿入などを行うことを行うと、投稿者のドメインでDKIMの署名をつけていても、その署名が壊れ、投稿者のドメインに対するDKIMの検査もfailすることになります。このため、ヘッダFrom 送信者に対してのDKIM署名の検証を求めてくるドメインには、「From の書き換え」または「メール内に添付」をするなどしてメーリングリストサーバーのドメインからの送信として配信を行う必要があります。
  • JCA-NETのメーリングリストではリスト参加者へのメールの配信においてはエンベロープ送信者をメーリングリスト専用のメールアドレスを用い、その送信を行うサーバーに対してSPFによるドメイン認証を設定しております。メーリングリストの設定で「From を書き換え」または「メール内に添付」を設定していない場合には、ヘッダの From: のメールアドレスとエンベロープ送信者のドメインが異なるものとなりますため、SPFの結果によらずDMARCの結果にpassすることを求めるサイトでのメール受信ができなくなります
  • メーリングリスト設定で「From を書き換え」または「メール内に添付」を設定していない場合、リスト参加者が自身の登録メールアドレスからさらに自動転送で別のドメインへと転送を行ったとき、当該転送先のドメインの受信ポリシーでSPF,DKIM,DMARC等にpassすることを求める場合には転送を行ったサーバーのIPアドレスによってSPFを判定することになりますため、(例外条件はありますが)一般にはSPFも有効ではなくなるためにメール受信ができなくなります

上記に挙げた理由以外にも届かない理由はさまざまなものがありますので、その問題の把握・解消が必要である場合にはリスト管理者は、メーリングリストからの配送エラー処理の通知に添付されている、配送エラーの通知メッセージ(バウンス)の中身を吟味し、受信者のメールサーバーの返してきた応答メッセージを確認する必要があります。(ただし、そうした応答メッセージは受信メールサーバー毎に任意で返してくるものなので、詳細な理由が書かれているものもあればそうでないものもあります。詳細な理由が書かれておらず、またメール受信のポリシーも明らかでない場合には送信側であるメーリングリストサーバー側ではそのエラーの理由を知ることはできません)

3. メーリングリストからの配信が登録者に届かない場合の緩和設定

上で述べた通り、近年の厳しい送信者ポリシーを求めるドメインのメールアドレスへと配信メールを届けるには投稿メールのヘッダーの送信者(ヘッダー From:)をそのまま残して再送することが難しくなっております。このため、JCA-NETで運用しているメーリングリストシステムMailmanでは、特定条件においてメーリングリストシステム固有のメールアドレスをヘッダーの送信者として再設定した上で各登録者に配信するためのオプション設定が用意されております。また、ヘッダーの送信者を再設定する際の方式として、"From を書き換え(Munge From)"および"メール内に添付(Wrap Message)"の2つの方式があります。まずはヘッダーの送信者の再設定の方式について説明いたします。

3.1. ヘッダーの送信者の再設定の方式

3.1.1. "From を書き換え(Munge From)"

この方式では、From: のメールアドレスをメーリングリストの投稿アドレスへと変更し、元の From: に表示名が存在していた場合にはその表示名を「"元の表示名" via "メーリングリスト名"」または「"元の表示名("メーリングリスト名"経由)」へと変更します。元の投稿メールの From: のメールアドレスは
Reply-To: ヘッダに追加されます。利用者のメールクライアントソフトウェアが何であっても問題なく配信されたメールが表示できることが期待できる一方、元の投稿者のメールアドレスの確認がしにくくなるのが欠点です。

3.1.2. "メール内に添付(Wrap Message)"

この方式では、投稿メールの配送のために新たにメーリングリストの投稿アドレスからのメールを作成し、元の投稿メールはそのまま添付ファイルとしてメーリングリスト登録者へと配送します。この方式では、利用者のメールクライアントが対応していれば、投稿メールに変更を加えることがない形で表示・返信などが可能になりますが、一部の携帯端末向けのメールソフトウェアでは表示ができなかったり、不明な添付ファイルとして削除されてしまうなどの問題が発生する場合があります。

3.2. ヘッダーの送信者の再設定を行う条件の設定

メーリングリストからの配信が登録者に届くかどうかは主に投稿者の送信メールアドレスドメインに対する登録者の受信メールアドレスのドメインの間での受信ポリシーによるものであることが多いため、必ずしも全てのメールに対してヘッダーの送信者の再設定を行う必要があるわけではなく、必要のない場合にはヘッダーの送信者の書き換えを行わずに配信を行うことも可能です。

ただし、登録者人数が多かったり登録者が流動的であるような場合には細かく制御することが困難になるため、一律でヘッダーの送信者を再設定するような設定が必要になると思われます。また、メーリングリストからのメールの From: ヘッダの送信者が常にメーリングリストのメールアドレスに設定されても構わないと考える場合には、条件設定を行わず、すべての投稿メールについてヘッダーの送信者をメーリングリストのメールアドレスに置き換えて配送を行うようなことも可能です。(3.2.1 を参照のこと)

以下では、JCA-NET の Mailman で用意されているヘッダーの送信者の再設定のためのオプション設定を説明します。

3.2.1. 投稿者のメールアドレスによらず、常にヘッダー送信者の再設定を行う(from_is_list)

投稿アドレスへと投稿された全てのメールに対して 3.1 で説明した "From を書き換え(Munge From)" または "メール内に添付(Wrap Message)" を行う設定です。この設定はメーリングリストのウェブUIでの管理ページ https://list.jca.apc.org/manage/admin/<メーリングリスト名> にログイン直後のページである "全体的オプション" の中程にあり、見出しでは

「From: ヘッダーのメールアドレスをリストの投稿アドレスに置き換え、 元の From: ドメインの DMARC あるいは類似のポリシーにより 生じる問題を緩和します。(from_is_listの詳細)」

とある項目です。

ここでの設定は3.2.2.でのDMARCポリシーに応じた設定に先立って参照されて有効になりますので、DMARCポリシーに応じた細かい設定を行いたい場合にはこの項目の設定は "いいえ" としておく必要があります。

メーリングリストの登録者のメールアドレスのドメインに、受信するメールの条件としてDKIMおよびSPFの両方の検査にパスすることを求めるようなポリシーであるドメインがいくつも含まれている場合には、この設定を行うか、3.2.2.で説明をする個別ドメインに対する設定で管理することが必要になります。

3.2.2. 投稿者のメールアドレスのドメインのDMARCポリシーに応じてヘッダー送信者の再設定を行う

メーリングリストに投稿を行った送信者のドメインがDMARCポリシーを設定している場合のみ、投稿メールのヘッダー送信者を書き換えずに配信を行うとそのポリシーによって配信メールを拒絶されることを避けるためにヘッダー送信者の再設定をするような設定も可能です。こうした条件に応じてヘッダー送信者の再設定を行う場合・行わない場合を分けるようにするためには、前項で説明しました常にヘッダー送信者の再設定を行う(from_is_list) での設定は「いいえ」にしておく必要があります。さもなければ from_is_list での設定が優先されて常に「fromの書き換え」または「メール内に添付」が実行されることになります。

この設定はメーリングリストのウェブUIでの管理ページの設定分類から「プライバシー・オプション」->「送信者フィルタ」と選択したページの中の「会員フィルタ」のならびにあり、投稿者のドメインのDMARCポリシーがそれぞれ「拒否」(reject) である場合(p=reject とも表現します)に"From を書き換え(Munge From)" または "メール内に添付(Wrap Message)" を行うように設定が可能です。また、投稿者のドメインのDMARCポリシーが「隔離」(quarantine)である場合(同様にp=quarantine とも表現します)および「無視」(none)である場合(同様に p=none と表現します)である場合にもポリシーが「拒否」であった場合と同様に扱うかの選択が可能です。

また、投稿者のドメインがDMARCのポリシーの宣言をしていないドメインであっても同様にDMARCで行われるようなドメイン認証にパスすることを求められる場合もあるため、DMARCポリシーの宣言の有無・内容によらず、p=reject の場合と同様の処理を行うことを求める投稿者のドメインのリストを「メールアドレスのドメインに対してのDMARCポリシーの設定にかかわらず dmarc_moderation_action を適用するメールアドレス(または正規表現)のリスト。」(dmarc_moderation_addresses)に設定が可能です。

実際問題として Microsoft のメールサービスを利用しているドメインでは、大規模メール送信者のドメインに対してDMARCのポリシーによらず、DMARCの検証に成功しない場合にはメールを受け取らないというポリシーで運営されておりますため、メーリングリストの登録者にこのようなドメインのメールアドレスの方がいらっしゃる場合には、p=quarantine の場合にも p=none の場合にも p=reject の場合と同様の扱いを設定するか、上記の dmarc_moderation_addresses に拒否される登録者のドメインのリストを登録する必要があるかと思います。

4. メーリングリスト登録者に対するお願い

メーリングリストの設定よってヘッダー送信者を書き換えることでSPF, DKIM, DMARCをそれぞれメーリングリストの送信者ドメインに対してpassするようにしても、メーリングリストの登録者のメールアドレスへの配信の後にそこから自動転送を行って別のメールアドレスで受信しようとしている場合、転送段階でドメイン認証がpassできないようになって届かないという場合もあります。そこで、メーリングリストの登録者には、なるべく最終的に受信するメールアドレスを直接メーリグリストに登録するようにお願いしてください。もし、最終的に受信したいメールアドレスと投稿に使用するメールアドレスが異なるような場合には、投稿用と受信用のメールアドレスの両方をメーリングリストに登録し、投稿用のメールアドレスには配信を行わないようにすることも可能です。あるいは、自動転送を行う転送元のサーバーからのメールを転送先のメールサーバーではすべて受け取るように設定をお願いしてください。なお、自動転送の結果でJCA-NETのメーリングリストのメールを受け取れないような場合には、他でのメーリングリストからのメールに関しても同様にトラブルになっているかと思われます。

以上