こらない

2009-09-17(木)

AppleScriptで大量のメールをGmailへ転送する

今月9月いっぱいで現在の職場をクビになったので、職場のパソコンの中身を整理中。
結構長いこと在籍してたので、たんまり。
仕事のファイルはともかくとして、プライベートなものもちらほら。

そのちらほらの中のひとつがメール。
以前、プライベートなアドレスに来たメールを全部職場へ転送してた時期があって、そのメールがこんもり。
といっても、オリジナルは家のパソコンにあるので、消してしまえばいい。

…と言いたいところだけど、実はその当時、家のパソコンのハードディスクが死亡してしまい、その頃のメールは今や職場のメール環境の中にしかないのでした。

そうはいっても、何年も前のメール。
捨ててしまっても困らない…かというとそうでもなくて。

現在のアタシのメール環境はGmailのみで、いくつかのメールアドレスが存在しているけど、全部Gmailで管理してる。
そのGmailの登録は、2005-09-20。
本格使用はその1年後の2006-10-14。
意外と最近。

Gmailの基本的な使い方は、フォルダ分けやらカテゴリ分けやらってことは忘れて、とにかく捨てずに放っておき、「あのメールってどこだったかな?」と思ったら、検索すればいい、というもの。
実際、そう使ってる。
「あの人の連絡先って、前に教えてもらったよなー」と思った時に、検索すれば出てくる。

しかし。
当たり前だけど、Gmail使用開始以前のメールは検索しても出てこない!
これが困る!

なんか、いろんな人のウェブサイトの管理とか、レンタルサーバの設定とか、それにまつわるいろんな人とのやり取りとか、あるいは各種サービスへの登録とか変更とか、いざという時に掘り出したいメールというのが意外とある。

というわけで、職場に残っていた古いメールをサルベージすることに。
しかし、どうやって。

いちばん簡単、というか順当なのは、mbox形式で書き出す、という方法。
メールデータのまあまあ汎用的な形式。

でも、それはそれで扱いにくいので、1通ずつテキストファイルに書き出そうかなーと。
Macなら、その形式にしておけば、検索ですぐ探せそうだし。
けど、その場合、添付ファイルの扱いをどうしよう。

いろいろ考えた挙句、最終的に、全部Gmailに転送することに。
過去メールを検索したい時は、Gmail上で検索するわけだし。
転送にしちゃうと、差出人が全部「自分」になっちゃったり、送信日時が「今日」になっちゃうけど、まあでもそれでいいや。

というわけで、AppleScript(というMac標準の自動処理スクリプト環境)で、以下のように書いた。
ほんとは「新規メールを作成し、宛先や件名を設定して…」といったプログラムを書くのだけど、なんかもういろいろと面倒なので、動けばいいや、ということでいんちきしてみた。

tell application "Mail"
  activate
  
  tell application "System Events"
  
    repeat 50 times
      key code 3 using {command down, shift down}
      delay 2
      key code {32, 23, 33, 31, 3, 3, 34, 8, 14, 40, 47, 38, 35, 48}
      delay 0.5
      key code 2 using {command down, shift down}
      delay 0.5
      key code 126
      delay 1
    end repeat
    
  end tell
  
end tell

単純に、キーボード操作をシミュレートしただけ。
使い方と、スクリプト自体がやってることは以下。

  1. 転送したいメールを選択。
  2. コマンド+シフト+Fで、転送新規メールウィンドウオープン。
  3. 添付ファイルがあったりすると開くの遅いので、2秒待つ。
  4. 「宛先」にフォーカスが当たっているので、転送先のメールアドレスをキーボード入力して、念のためタブを1回打つ。
  5. 念のため0.5秒待つ。
  6. メール送信のショートカットである、コマンド+シフト+D。
  7. 自動で、転送メールウィンドウが閉じる。
  8. 上矢印キーで、ひとつ上のメールへ移動。
  9. 念のため1秒待つ。
  10. 以上を50回繰り返す。

repeat 50 timesのところは、最初は2とか3にして、それから10にして、次に50にして100にして…って確認しつつ適当に。
重い添付ファイルとかあると、タイミングがズレて暴走することがあるので注意。
あと、キーボード入力のシミュレートなので、実行中はパソコンの操作はNG。

そんなわけで、要るメール要らないメールの手動振り分けもあきらめて、3,000通ほどのメールをまるごと転送中。

そうそう、冒頭に書いた「クビ」の件ですが、その後に関してはもう決まってて、たぶん勤務地も変わらなさそうな気配。
このご時勢、安心なんてことはないわけですが、特に心配するような状況でもないですので、ご心配なく。

コメント