最新 RSS

HIE no Murmur

2005/10/05

# [xyzzy] AL-Mail to KaMail

以前使っていた AL-Mail のメールデータを長いこと放置していたが,これを KaMail に取り込もうと思い立つ。AL-Mail も 1 メール 1 ファイルで保存されているため,案外ファイル名を変更するだけでいけるのでは,などと甘い期待を寄せて KaMail に放り込んでみた。しかし,キャッシュファイルを作成し,サマリの表示まではうまくいったものの,本文が化けてしまいダメダメ。

AL-Mail のデータは,Subject が復号化された状態で保存されているため,これが悪さをしているのかとも思ったが,どうやら,エンコーディングが Shift-JIS になっているのが原因だったもよう。で,またしてもへなちょこなものをつくって,指定フォルダ中のファイル名を連番にしつつ,エンコーディングを ISO-2022-JP にすることにした。

(defun almail2kamail ()
  "AL-Mail のメールファイルを KaMail 用に変換"
  (interactive)
  (let* ((dir (read-directory-name "directory: "))
         (lst (directory dir
                         :absolute t
                         :wild "*.alm"
                         :file-only t)))
    (when lst
      ;; エンコーディングの変更
      (let ((buf (create-new-buffer "*alm2km*")))
        (set-buffer buf)
        (dolist (f lst)
          (erase-buffer buf)
          (ed::insert-file-contents f t)
          (write-region (point-min) (point-max) f nil *encoding-jis* 1))
        (delete-buffer buf))
      ;; ファイル名の変更
      (let ((i 1))
        (dolist (f lst)
          (rename-file f (merge-pathnames (format nil "~D" i) dir))
          (incf i))))))

almail2kamail は,ファイルを直接書き換えてしまうので,以下の手順で。

  1. AL-Mail の Mailbox 以下のメールファイルを,KaMail のローカルフォルダ中に新たにフォルダを作成してコピー。
  2. M-x almail2kamail して,新たに作成したフォルダを指定。
  3. 新たに作成したフォルダを,設定ファイル Folders に追加するか,フォルダモードから a するなどして KaMail のローカルフォルダとして登録。
  4. 新たに登録したフォルダを開くと,「Cache fileを作成します」といわれるので,作成してもらう。

これを AL-Mail のメールフォルダの数だけ繰り返す。で,たぶんオッケー。

コメント
お名前 コメント
トラックバック - http://hie.s64.xrea.com/murmur/tb.cgi/20051005