12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IMAPのRecentフラグをずっと誤解していた話

Last updated at Posted at 2015-05-07

恥ずかしながら、私はずっと誤解してました。

IMAPでは、"\Seen"(読んだ)、"\Answered"(返信した)等、メッセージの状態を表すフラグがあります。"\"で始まるフラグは、System flagと呼ばれ、IMAPプロトコルで標準的にサポートされるフラグです。System flagは以下の6個あります。

フラグ名 意味
\Seen 読んだ
\Answered 返信した
\Flagged フラグ(マーク)
\Deleted 削除した
\Draft 下書き
\Recent 最近届いた

本題の"\Recent"ですが、かなり特殊なフラグです。RFC3501によると

Message is "recently" arrived in this mailbox.
(メッセージは"最近"このメールボックスに到着した。)

という意味になります。直感的に考えると新着のメールを意味するように思えますが、そうではありません。

新着のメールも"\Recent"フラグは付加されますが、例えば、メールボックスAからメールボックスBにメッセージをコピーしてメールボックスBに追加されたメッセージにも"\Recent"フラグは付加されます。実際、dovecot等のIMAPサーバーではコピーによってrecentフラグが付加されることが確認出来ます。

なので、"\Recent"フラグ付きのメールの有無だけで新着メールをチェックしているMUAは、新着メールの着信検知に失敗することがあります。IMAPでは新着メールの検出は厳密にはできないと思います。

正直、誰得な仕様な気もします。

12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?