2010年6月28日月曜日

SoftBankのメールをGmailに転送する

SoftBankのi.softbank.jpドメインのメールは設定で他のメールアドレスに転送することが出来ない。
メールはGmailにすべて流し込むようにして管理しているのでなんとかGmailのラベルMobile配下に転送できないか考えてみた。
ググってみると imapsyncと言うパッケージが使えそうだ。もともとimapサーバの移行のために作られたスクリプトのようだがこういった用途でも使えそう。
オプションが豊富でコマンドラインで扱うのには大変なのでシェルスクリプト内に記述することとした。

以下シェルスクリプト

imaptogmail.sh

# /bin/sh

/usr/bin/imapsync \
 --host1 imap.softbank.jp --user1 hoge \
  --passfile1 /etc/imap.softbank.pass --authmech1 LOGIN --ssl1 \
  --folder INBOX --folder Notes --folder "Sent Messages" \
 --host2 imap.gmail.com --user2 fuga@gmail.com \
  --passfile2 /etc/imap.gmail.pass --authmech2 LOGIN --ssl2 \
 --syncinternaldate --prefix1 INBOX --prefix2 Mobile \
 --useheader Date

オプションの説明:
--folder オプションで INBOX,Notes,Sent Messages だけを対象にする。
--prefix1 INBOX --prefix2 Mobile でimap.softbank.jpのINBOXにあったメッセージをGmailのラベルMobileに置くようにする。
--useheader Date デフォルトではMessageIDを比較してコピーするかどうかを決定しているようだ。を日付で比較するように変更
MessageIDの比較だとコピー後に変わる?ものがあり、そのメッセージは必要ないのに再度コピー操作が入ってしまう事がある。なのででタイムスタンプで比較するように変更した。(詳細不明)

1 件のコメント:

Hiroshi さんのコメント...

よくわかってないのに書いてしまった。Message-IDはコピーされても変わっていなかった。でわ、なぜ再度コピーされてしまうのか?謎です。
現在は
--useheader Message-ID
で使用しています。
相変わらず数ヶは無駄に再度コピーになっています。