POP3 + UIDL

Katsumi Yamaoka <[email protected]> Wed, 03 Oct 2012 18:51:39 +0900
Newsgroups gmane.emacs.gnus.semi.japanese
Organization Emacsen advocacy group
Message-ID <[email protected]>
こんにちは山岡です。

必要に迫られて pop3.el に UIDL を使って POP サーバーに残すメール
を管理する機能を追加してみました。いろんなメーラーまたはいろんな
場所から同じサーバーをアクセスするのが主な目的です。

(当然ながらそんな目的には IMAP を使えって言われそうですが、仕事
 場のサーバーはサポートしていないし、自分でサーバーを立ち上げる
 気力も無いのです。メーラーを変えるたびに同じメールを何度も見る
 不便は承知の上です。)

で、作ったのは以下のようなものなのですが、それはちょっと困るとか、
こうする方がいいんじゃないか、などのご意見をいただけますか?

・サーバーにメールを永久に残すか、または残す日数を指定できる。
  → 残す日数の管理はどれか一つのメーラーがやればいいし、それぞ
     れが勝手な日数で消すようにしても問題は起きない。
  → 日数のカウントは最初に新着メールとしてチェックした時が基点。

・残す日数は mail-sources の :leave キーワードで指定。
  → 例: (pop :server "my.pop.server" :user "user-name" :leave 7)

・複数のサーバーの UIDL を単一のローカルファイルで一元管理。
  → デフォルトは ~/.pop3-uidl というファイル。
  → その中身は

     (("Server1"
       "UIDL1" (Time Stamp)
       "UIDL2" (Time Stamp)
       ...)
      ("Server2"
       "UIDL1" (Time Stamp)
       "UIDL2" (Time Stamp)
       ...))

     ここで (Time Stamp) は (current-time) の戻り値の上位 2桁。

実際のコードは現在ここ↓に置いてあります。
	ftp://ftp.jpl.org/pub/tmp/pop3+uidl/
(または http://www.jpl.org/ftp/pub/tmp/pop3+uidl/)

なお T-gnus の pop3.el では「サーバーにメールを永久に残す」こと
だけサポートしていました。現在の Gnus の pop3.el にもそれはある
のですが、サーバーに残っているメールを何度でも取り込んでしまうの
で、まったく使いものになりません。T-gnus の pop3.el は XEmacs が
出処なのですが、UIDL まわりのコードを書いた人が不明なため著作権
にうるさい Emacs に取り込むことが今までできず、ようやく重い腰を
上げた次第です。

(ding にも簡単な紹介を書いたのですが、現在なぜか配送が止まってい
 るようです。)