たかがRe: されどRe:

メールを返信する時には、ほとんどのメーラーで自動的に「Re: 」を付加した件名が生成される。

  • かつて、メールの件名には無頓着で、自分勝手に好きな件名に変更することもあった。
  • しかし、仕事でも電子メールが一般的になってくると、複数の問い合わせに対応する回答を明確に区別するには、件名を変更せずにRe: を付加してやり取りすると効率的であることに気付いた。
  • さらに、Gmailが出現してスレッド表示が一般的になってくると、返信の時に件名を変更するなんて、以ての外だと思うようになった。

スレッド

  • 新規のメールに対して、受信者が何度かの返信を繰り返して、1つの話題についての議論が進行していく。
  • この共通の話題についてのメールのやり取りを集めたものをスレッドという。
  • 日々、メールでは複数の話題が進行中なので、スレッドで区別すると議論の推移を追いやすくなり便利だ。

スレッドの区別

それでは、ごちゃ混ぜになったメッセージを、メーラーがどのように区別しているのか?調べてみると...どうもヘッダーに格納される下記の情報を利用して、スレッドを区別しているようだ。(理想的には)

  • Message-Id:
    • 個々のメッセージに対して割り当てられる識別コード。(全世界に1つしかない)
  • In-Reply-To:
    • 返信の対象を明確にするため、元のMessage-Idを記録する。
  • References:
    • 返信するごとにIn-Reply-Toが追記されて、返信の履歴となる。

件名もスレッドのキーになる

ところで、メールという仕組みには長い歴史がある。上記のヘッダーを含めてその仕様は詳細に規定されてはいるが、改変される度にルールが複雑になり、メーラーによって実装が異なっているのが現状のようだ。中には、メーラー(特に携帯メール)によっては、In-Reply-To や References が実装されていない(無視する・削除する)という状況もあったりする。In-Reply-To や References だけではスレッドを完全に追跡できないのである。

そこで、GmailOSXiOS4のメールでは、このスレッドを区別するのに、メールの件名も利用している。

  • 基本的に件名が同じだと、同一のスレッドとして表示される。
  • また、Re: が付加されていても、Re: を取り除いた件名と同一のスレッドとして表示される。
    • 例「メールの件名について」
    • 例「Re: メールの件名について」

様々な「Re: 」

これで理想的なスレッドに区分できるかと思いきや、前途多難である。メーラーによって、実に様々な「Re: 」を付加してくれる。

  • 全部大文字で付加する。
    • 例「RE : メールの件名について」
  • 重複しても付加する。
    • 例「Re: Re: メールの件名について」
  • 重複したらRe: をカウントして数字も付加する。
    • 例「Re2: メールの件名について」
  • 上記以外にも、「re: 」「Re」「Re>」「Re:」(半角スペース無し)なんてのもあるらしい。

RFC 5322によると...

  • 「Re: 」(大文字R + 小文字e + コロン: + 半角スペース)
  • 重複する場合は、余分に付加しない。(つまり、何度返信しても「Re: メールの件名について」となる)

上記の仕様が正解らしい。

OSXiOS4のスレッド

ルール

  • In-Reply-To・References と 件名を利用して区別する。
  • 返信の時は「Re: 」を付加する。但し、重複させない。

件名の比較

  • 「Re: 」=「Re: Re: 」
  • 「Re: 」≠「Re2: 」
  • 「Re: 」≠「Re: Re: Re: 」
  • 「Re: 」≠「RE: 」
  • 「Re: 」≠「re: 」

良い点

  • 件名が変更されても、In-Reply-To・Referencesによってスレッドを追跡できる。

問題

  • 過去のメッセージに返信して作成すると、新規のつもりで送信しても過去のスレッドに追加されてしまう...。
  • 同じ件名(例「お久しぶり」)だと、かなり時間的な隔たりがあっても、すべて同じスレッドになってしまう...。
  • 受信メッセージしかスレッド表示されない...。
    • 送信メッセージがないと、話しが繋がらない。
    • 常に自分をBccに含めるべきなのだろうか?
  • スレッド表示にすると無意味に感じる引用部分もそのまま表示される。

Gmailのスレッド

ルール

  • 件名のみで区別している。
  • 時間的な隔たりは考慮されているようだ。
  • 返信の時は「Re: 」を付加する。但し、重複させない。件名は編集できない。

件名の比較

  • 「Re: 」=「Re: Re: 」
  • 「Re: 」=「Re2: 」
  • 「Re: 」=「Re: Re: Re: 」
  • 「Re: 」=「RE: 」
  • 「Re: 」=「re: 」

良い点

  • かなり融通を利かせてRe: を判定してくれる。
  • 時間的隔たりまで考慮してくれる。(と思う)
  • 受信・送信両方のメッセージをスレッド表示してくれる。
  • スレッド表示にすると無意味に感じる引用部分が自動的に隠れる。

問題

  • 件名でRe:以外の変更をしてしまうと、スレッドは追跡できなくなる。
    • 携帯メールとやり取りすると、携帯側で激しくRe:が付加され、携帯側の件名文字数をオーバーして、件名が途中で切れてしまう。
    • Gmailの問題ではないけど、結果的にスレッドが分かれてしまうのだ。

理想

  • Gmailのスレッド表示は、かなり理想に近い。
    • 携帯メールとやり取りしなければ、ほとんど問題はない。
    • あとは返信時に件名を変更しないことを心掛ければ幸せになる。
  • しかし、運悪くRe:が連なって、件名が途中で切れて、スレッドが分かれてしまうこともある。
  • あるいは、誰かが途中で件名を変更してしまうことがあるかもしれない。
  • いっそのこと、Gmailのように返信では件名を変更できないメール仕様にしてしまうとか...。(今更無理)

つまり、自分が理想とするスレッドとなるように、スレッドの連結・分割を自由に操作できれば良いのだ!

Reとは

そもそも、付加されるRe: にはどんな意味があるのだろうか?

  • Re: - Wikipedia
    • responseやreply、refer to、returnの略ではない。
    • ラテン語の res を語源とする 英語の re という単語(〜について)そのもの。
    • あるいは、ラテン語の in re の略という記述もある。


そもそも、件名を表現する項目で、返信や転送を区別しようとしたのが問題の始まりなのかもしれない。すべてのメーラーが、In-Reply-To と References をちゃんと実装してくれれば良いのに。