Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

h2maildir.rb -- MH形式のフォルダをMaildirに変換する Ruby スクリプト

15 views
Skip to first unread message

Yasushi Shinjo

unread,
Aug 11, 2020, 4:05:41 AM8/11/20
to
新城@筑波大学情報です。こんにちは。

1つ前の記事で、MH + MH-e から mu4e に移行したという話をしました。この場
合、MH のメールを Maildir に移行したくなるわけです。それために、次の
Ruby スクリプトにお世話になました。ありがとうございました。

https://ihag.hatenadiary.org/entry/20080107/1199724428
はてなID ihag, ニックネーム genta さん
2008-01-07
MH形式フォルダをMaildirに変換

大量のファイルを変換していると、一部エラー出て来て止まりました。rescue
入れてごまかしました。原因はあまり追求してません。すみません。

$ diff mh.rb.~1~ mh.rb
28a29
> begin
30a32,41
> rescue NoMethodError
> $stderr.printf("\nskip broken mail %s (NoMethodError)\n",file)
> next
> rescue ArgumentError
> $stderr.printf("\nskip broken mail %s (ArgumentError)\n",file)
> next
> rescue => evar
> $stderr.printf("\nskip broken mail %s (%s)\n",file,evar)
> next
> end
$

あと、古い MH のフォルダで、Seen が付いてないけれど、Maildir で既読にし
たかったので、次の所を修正して、S フラグをつけるようにしました。

$ diff maildir.rb maildir-seen.rb
80,81c80,85
< info = ''
< [['Seen', 'S'], ['Replied', 'R']].each do |(label, tag)|
---
> # info = ''
> # [['Seen', 'S'], ['Replied', 'R']].each do |(label, tag)|
> # info += tag if mh.flag[label]
> # end
> info = 'S'
> [['Replied', 'R']].each do |(label, tag)|
$

Maildir も、メッセージを保存しているファイル名(ID)が変化するというのは、
今ひとつです。それ思うと、mu4e の索引はよく追随している。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 情報工学        \\
0 new messages