MH形式のおさらい(メモ)

MH形式フォルダのおさらい.

  • 1メール1ファイル
  • メールは「UNIX From行」がつく場合もある
    • "From nospam@example.com Tue Mar 14 11:13:50 2000" こんなの
    • MTA/MDAがメール配達時にEnvelope Fromの情報を格納するために使う
      • Maildir形式に変更するときは,Return-Pathヘッダに変換するのが妥当か?
  • メールへのフラグ
    • ヘッダを付与することでフラグを表現
    • Seenヘッダ: 既読
    • Repliedヘッダ: 返信した
    • Forwardedヘッダ: Forwardした
  • メールのファイル名
    • 数字で連番
  • フォルダ形式

Maildir形式に変換するときに考慮しなくてはならない事

  • ディレクトリ構造の変換
  • Maildirのファイル名を付与
  • メールファイルの変換
    • UNIX Fromの除去
      • Return-Pathヘッダの追加(既にReturn-Pathヘッダがある場合は追加しない)
    • UNIX Fromからmtimeを取得して,Maildirファイルのmtimeを設定する.
  • メッセージのフラグの対応

Maildirファイル命名規則

MDAによって流儀が異なるらしい.ここではCourier IMAPの流儀に従う.

  • ファイル名: cur/time.MusecPpidVdevIino_unique.host,S=cnt:2,info
    • time: UNIX time
    • usec: ファイルのmtimeのusec
    • pid: Process ID.10進数表記.
    • dev: デバイス番号.0パディングありの16進数表記で,16桁.(u_long(32ビット)らしい)
    • ino: i-node番号.0パディングありの16進数表記で,8桁.(u_int(16ビット)らしい)
    • unique: 10進数表記,1桁.
    • host: そのホストのFQDN
    • cnt: メッセージのサイズ(バイト数).10進数表記.
    • info: フラグ.以下,使いそうなものだけ記述.
      • D: Draft
      • R: 返信した
      • S: 既読
      • F: ユーザがフラグを付けた
      • フラグが無い場合は,末尾を":2"で終える.
      • 例: RS -- 返信した.既読.
  • tmpファイルの場合: tmp/time.MusecPpid_unique.host