BLOGTIMES
2017/01/07

ezmlm-idx から Mailman に移行

  Tips qmail  mailman  migration 
このエントリーをはてなブックマークに追加

MTA を qmail から postfix に変更したので、メーリングリストドライバも ezmlm-idx から Mailman に移行することにしました。

メンバーの移行

ezmlm からのメンバーの一覧は以下のコマンドで取り出すことができますので、このリストを Mailman に登録してやれば OK です。

cd (MLのデータディレクトリ) ezmlm-list .

アーカイブの移行

ちょっと苦戦したのが、過去メールアーカイブの移行。

過去メールを全て捨てても良いのであれば問題ありませんが、できればそのまま移行したいということで頑張ってみました。

[mailman-users-jp 2880] fml から Mailman への移行手順」によると、mbox 形式があれば以下のコマンドでアーカイブの移行ができるようです。

/usr/lib/mailman/bin/arch (ML名) (アーカイブのmbox)

つまり、ezmlm のディレクトリから mbox 形式のファイルが生成できさえすれば、移行は簡単にできそうです。これを行ってくれるプログラムを探してみたところ perl で書かれた ezmlm2mbox が見つかったので、今回はこれを使わせてもらうことにします。オリジナルのスクリプトには From: と Date: を書き換えてしまう機能があるようなのですが、余計なことをして欲しくないのでこの機能を殺すように書き換えてから使っています。

wget 'http://www.arctic.org/~dean/scripts/ezmlm2mbox' chmod 755 ezmlm2mbox vi ezmlm2mbox # 以下の diff のように編集 ./ezmlm2mbox (MLのデータディレクトリ) > hoge.mbox

diff -u ezmlm2mbox{.org,}

--- ezmlm2mbox.org 2005-06-29 21:02:02.000000000 +0900 +++ ezmlm2mbox 2017-01-07 01:33:04.000000000 +0900 @@ -80,8 +80,8 @@ my $out = ''; my %h; while (<$fh>) { - s/^From /X-Mail-From_: /; - s/^Date:/X-Original-Date:/i if $opts{'d'}; +# s/^From /X-Mail-From_: /; +# s/^Date:/X-Original-Date:/i if $opts{'d'}; $out .= $_; last if /^$/; if (my ($name, $value) = /^([^\s:]+):(.*)/) {

最後に ML のカウンターを引き継ぎます。
ezmlm のカウンターは num というファイルの : の左側の部分なので、以下のコマンドで数値を確認しておきます。

cd (MLのデータディレクトリ) awk -F: '{print $1}' num

以下のコマンドを打ち込むと mailman の設定を読み込んだ Python のコマンドラインが開きます。

/usr/lib/mailman/bin/withlist (ML名) (アーカイブのmbox)

以下の Pyton のコマンドを入力すればカウンタの引き継ぎは完了です。

m.Lock() m.post_id = (上記で確認した数字) m.Save() m.Unlock() (ここでctrl+dを入力すると Python を終了できる)

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9061
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン