Thunderbird(&Courier IMAP)からMail.app(&iCloud)への移行
Before:
- Mozilla Thunderbird(on MacOSX 10.7.2 Lion)
- さくらのメールボックス(Courier IMAP)
After:
iCloudが始まり、無料のAppleID(*@me.com)アカウントと一緒にメールボックス(最大5GB)が貰えるようになったので、IMAPサーバとして使っていたさくらのメールボックスサービスから移行することにしました。
Mail.appを使ってさくらとiCloudのIMAPに接続し、さくら内のメールをiCloudにD&Dで移動しようとしたところ、「〜:Message contains invalid header」とダイアログが表示されて移動できません。これは困ったと言うことで調べてみると、どうやらThunderbirdがさくら内のメールに付けてたFromヘッダ関連でちょいと都合が悪いものがあるらしい。仕方がないので、さくらのメール群を一端mbox形式でローカルにコピーします。
- Mail.appにてローカルに保存したいメールの入ったフォルダを指定する
- メニューより「メールボックス>メールボックスを書き出す...」を選択
- ダイアログより書き出し先フォルダを選択し、出力する
- メニューより「ウィンドウ>動作状況」を選択し、書き出しが終わるのを見守る
Terminal.appを起動し、書き出し先フォルダでFromヘッダ関連(および、なぜかヘッダの体をなしていなかった妙な日付情報)を削除するコマンドを発行します。
$ cd /path/to/書き出し先フォルダ $ find . -name mbox -print0 | xargs -0 sed -i '' -e "/^>From /d" -e "/^ [A-Z][a-z][a-z] [0-9][0-9] /d"
Mail.appのメニューより「ファイル>メールボックスを読み込む...」とし、読み込みダイアログで「Apple Mail」を選び、書き出し先フォルダを選択して読み込みます。
読み込まれたメールは「このMac内」のカテゴリの中の「読み込み」の下に置かれるので、これをiCloud上のメールボックスなどにD&Dでコピーします。
これで幸せになれました。
参考:
http://kb.mozillazine.org/Message_contains_invalid_header
Fix invalid mail headers when moving from Thunderbird to IMAP « Python recipes « ActiveState Code