Mozilla Thunderbird,POP3サーバでメールを残した時 [Firefox,Thunderbird]
Mozilla Thunderbird。 POP3サーバでメールをサーバに残す設定にすると、<THUNDERBIRD-PROFILE>\Mail\<POP3SERVER>\popstate.dat ファイルに情報を記録し始める訳ですが。 例えばこんな感じ。 (一部伏字)
# POP3 State File # This is a generated file! Do not edit. *???.?????.??.jp ???????@?????.??.jp k ECCCELBRHTP0ALJ4D2IEAFEEMOJWJ2HZFUOIKADS 1155621594 k B5GOB1N2KJCHFRPQCMFSFSALLXIEOJEAJ5B2AKIB 1155621595 k COMAHZF1D0NRIOAMLZB3NSAAMOKMODJWL3F0JRMP 1155621322
これを書き出しているのは /mailnews/local/src/nsPop3Protocol.cpp の net_pop3_write_state()。 行頭が * の行は POP3サーバ名とユーザ名の行。 その後には3個の値を並べた行が続く・・・と。 内訳は /mailnews/local/src/nsPop3Protocol.h の typedef struct Pop3UidlEntryで定義されている通り。
typedef struct Pop3UidlEntry { /* information about this message */ char* uidl; char status; // KEEP=='k', DELETE='d' TOO_BIG='b' FETCH_BODY='f' PRInt32 dateReceived; // time message received, used for aging } Pop3UidlEntry;
Pop3UidlEntry を内包した のリンクリストを for ループで回して書き出し・・・ 常に全出力の上書き保存っぽい。
となると、それだけから推測できる受信済みメールを再受信してしまう可能性としては
- POP3サーバのホスト名が変わった。
- POP3サーバへアクセスするユーザ名が変わった。
- POP3サーバが返す UIDL の値が変化した。
- popstate.dat を削除 or エディタなどで変更した。
- Thunderbird のバグ(リンクリストが壊れちゃったとか)
あぁ、ローカルメールフォルダをスキャンしてマークを拾ってリンクリストを更新する処理もあるようだから(「受信トレイから削除や移動するまで残す」という設定の関係かな)、そうなるとメールサマリファイル(Mail Summary File) *.msf の内容にも影響を受けるのかも。 結構ややこしいなぁ。
あと、ウイルス対策製品の中にはウイルス対策製品がメールのプロキシサーバとなるようにメールソフトの POP3設定を変更するものも過去にはあったから、そういうのがPOP3サーバのホスト名を変更すると全て受信しなおしちゃう・・かな。
そういやリスト要素の最大個数制限とかどうなってるんだろう... PRUint32 でループ回しているから符号無し32ビット整数でいいのかな。
ま、IMAP4じゃないんだから、通常は POP3のメールは受信してサーバから削除するのがヨシw POP3サーバが返す UIDL だって、たぶんメッセージのダイジェストなんだろうけど、そうならば POP3サーバの実装次第で常に同じ値が返って来る保障はない訳だし。 (POP3サーバ上で動くウイルス対策製品が添付ファイルを除去しちゃってダイジェストが変化する、とか。)
コメント 0