Landscape トップページ | < 前の日 2004-02-04 2004-02-05 次の日 2004-02-06 >

Landscape - エンジニアのメモ 2004-02-05

重複せずに POP サーバからメールを受信する仕組み UIDL


* 重複せずに POP サーバからメールを受信する仕組み UIDL

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [メール]

POP でメールを受信するとき、どうやって受信済みと未受信を管理しているんだろう?
IMAP でメールを読んで、そのあと POP クライアントでメールを受信するとき、未読・既読にかかわらず未受信のメールだけをちゃんと取得してくれる。たぶんクライアント側に何かデータベースがあると思うけど、標準的な仕組みってあるのかな。それに、どうやってメールを一意に特定しているんだろう? Message-ID かな?

Google で メール 受信 重複 仕組みで検索するとトップでヒット。

[becky-ml:18396] 重複して受け取らない仕組みを教えていただけませんか
http://b2search.tietew.net/archive/becky-ml/18396
に対する返答の、[becky-ml:18397] Re: 重複して受け取らない仕組みを教えていただけませんか
http://b2search.tietew.net/archive/becky-ml/18397
ツール→プロトコルログを取る、を ON にしてサーバとのやりとりを眺めて
みてください。すると

UIDL
+OK
1 10c0035cb84ff36f078b26fe89050b6c
2 1504786cef65214303beb3426b51fd3f

こんなのがあると思います。UIDL というのは Becky! が投げたコマンドで、
その後はサーバの応答です。 UIDL というのは POP3 サーバがメールに対し
て 1 意に割り振る ID です。(この例では 2 通メールがありますの)

サーバにメールを残す設定では、Becky!はこの情報をデータフォルダのなか
の "ユーザー名@サーバ名.dat"というファイルに保存しています。他のソフ
トでも同様のファイルがあるはずです。受信時にこのファイルの情報とサー
バが返してきた UIDL を比較して、受信済みかそうでないかを区別し
ています。

なるほど、受信したメールにあった X-UIDL というヘッダはこれのことだったのか。

- Netscape Messanger ではどこに UIDL を保存してるの?

Netscape のユーザプロファイル保存ディレクトリを探してみる。mail というディレクトリがあるから、きっとこの中だろう。ん、これかな? popstate.dat とは、いかにも状態管理してそうなファイル名だ。

開いてみると、中は3行しかなかった。
# Netscape POP3 State File
# This is a generated file!  Do not edit.

あ、そういえば私はサーバをメールに残す設定にしてなかったんだっけ。サーバにメールを残すように設定を変更して、と。

# Netscape POP3 State File
# This is a generated file!  Do not edit.

*mail.example.com hiroaki
d eF:"!#hN"!NN%"!e^~!!

おお、なるほど。1行目に POP サーバ名とユーザ名、2行目に UIDL か。

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。