綾小路龍之介の素人思考

Services > Gmail Tips

Gmailを使う上でのテクニックを紹介していきます。僕が考えたものがほとんどなので、あまり使えないかもしれませんが、御容赦ください

目次

gmailに転送メールを集中させて一括管理

gmailのメール保存容量は大きい。この記事書いてるマシンのHDDより大きい。そのうちGmailにOSインストールとかの記事が出てきそうな気がする。まぁそんなことは置いといて、本日の本題。

僕はYahooの転送メールアドレスをたくさん持っている。然るべきところに突っ込んでいると増えてくるってわかるよね。いままではPOPでいちいち管理していたが、面倒になってきた。そんなわけで、Yahooメールの転送機能を使って、一括管理しよう。まずはYahooメールの転送先をGmailにしておく。

a@yahoo.co.jp --> 0@gmail.com
b@yahoo.co.jp --> 0@gmail.com
c@yahoo.co.jp --> 0@gmail.com
d@yahoo.co.jp --> 0@gmail.com
e@yahoo.co.jp --> 0@gmail.com
f@yahoo.co.jp --> 0@gmail.com

それで、Gmailのラベルでそれぞれの転送アドレスに対応したラベルを作っておく。

このやりかただと、最近は送信に手間取りそうな予感。当然転送アドレスなんだから、YahooのSMTPサーバからの送信はできない。そんなわけで、どこかのSMTPサーバを借りてfrom: 転送アドレスとかで送ろうとするんだけど、相手先のMTUが送信者のドメインと借りたSMTPの逆引きFQDNが同じでないとキックするような設定にされていると送信できない。調査が必要だな。

自動的にラベルをつけるには

メールを何回か受け取ってからラベルをつけたくなることがあります。メール着信時にラベルをつけるように設定すれば、設定時以降の着信メールにはラベルがつきますが、以前に受け取ったメールにはラベルがつきません。そんなときは、次のようにすると楽です。最初にラベルをつけるときの振り分けルールに受信ボックスのラベルを追加して、全てをアーカイブします。

from:((@mag2.com mag2 ID)) label:inbox

これでラベルを付けたいメールは全てアーカイブされたことになります。このときUWSC等のツールを使うと楽です。UWSCを使うときの注意点は設定メニューの「余分なマウス移動は記録しない」にチェックを入れておくことです。これで1回だけラベルをつける操作(ALL、メニュー、アーカイブ)をします。UWSCで今の操作を保存して、できたファイルをエディタで開き最後にsleep(6)と追加して保存します(6秒休むということ、これをいれておかないとGmailがラベル付けの処理をし終える前に次の動作に移る。)。UWSCに戻って追記したファイルを開き、繰り返し回数を100回くらいにすれば10分後には全てのメールがアーカイブされていることになります。

次に振り分けルールにそのときに付けたラベルを除いて、なおかつ未読のものを検索条件として、同様にUWSCでラベル付け(ALL、メニュー、ラベル)をします。このときも同様にsleep(6)を追記します。

from:((@mag2.com mag2 ID)) -label:M_mag2 is:unread

最後に既読のものにラベル付けを行います。

from:((@mag2.com mag2 ID)) -label:M_mag2 is:read

なぜアーカイブにする、未読メールにラベルをつける、既読メールにラベルをつける、という手順を踏むかというと、UWSCで上手いことラベルを選択する方法がほかに見つからなかったからです。もし、検索結果に受信箱中のメール、未読メール、既読メールが混じっていると、そのときに応じてメニュー中のラベルの位置が変化してしまい、複数あるラベル中のある特定のラベルを選択することが困難になり、付けたくないラベルを誤ってつけることになる恐れがあります。そのため、これらのメールの種類であらかじめ振り分けをしてからラベルをつけることになったわけです。

最終的に使われるUWSCファイルは下のような内容になっています。(test.uws)

ACW(GETID("GMAIL - SEARCH RESULTS FOR: FROM:((@MAG2.COM MAG2 ID)) -LABEL:M_MAG2 IS:UNREAD - LUNASCAPE","LunascapeMainWnd"),-4,4,1032,748,0)
BTN(LEFT,CLICK,192,247,234)
BTN(LEFT,CLICK,703,217,156)
BTN(LEFT,CLICK,727,384,324)
BTN(LEFT,CLICK,697,350,543)
sleep(6)

メールを何回もやり取りした後からこれらのメールに自動的にラベルをつけるには

一つ前の記事とよく似ている内容なので、これを読む前に一つ前の記事を読むことお勧めします。とりあえず前回の方法ではsleep文で休みを入れました。この方法だと、Gmailサーバやネットワークの空いている時間はsleepを短く、混んでいる時間はsleepを長く取らないと効率的にラベリングできませんでした。今回はこれを改良してWindowIDを取得する処理を追加して、任意秒休んで、あるWindowIDを取得できたら(取得できるまでは次の処理に移らない)次の処理に移る様にします。ここまでくると本当にほって置いても自動的にラベリングをしてくれます。実際この方法で1万通のメールにラベリングをしました。

前回と同様に最初に1回だけラベリング処理を行います。このファイルをエディタで開くと、次のようなファイルになっていると思います。(test1.uws)

ACW(GETID("GMAIL - SEARCH RESULTS FOR: FROM:((@MAG2.COM MAG2 ID)) -LABEL:M_MAG2 IS:UNREAD - LUNASCAPE","LunascapeMainWnd"),-4,4,1032,748,0)
BTN(LEFT,CLICK,192,247,234)
BTN(LEFT,CLICK,703,217,156)
BTN(LEFT,CLICK,727,384,324)
BTN(LEFT,CLICK,697,350,543)

GETID文はGmailのウィンドウのIDを取得する文で、第1引数が含まれるウィンドウのウィンドウIDを返します。Gmailがラベリング処理を行っている最中のタイトルバーに注目すると、GETID文の第1引数が含まれている事がわかります。ただし、第1引数と全く同じというわけではないと思います。多分第1引数のis:unreadの後に1%とか2%とか処理の進み具合を示す文字が挿入されている事と思います。ラベリング処理が終われば、タイトルバーの内容は第1引数と全く同じになるはずです。

そこで、タイトルバーの内容が第1引数と全く同じになるまでは次の処理に進まない様にします。test1.uwsではGETID文は引数を2つ取っていますが、これに第3引数(-1)を追加します。こうすることで、ウィンドウが元の状態に戻るまで、つまりラベリング処理が正常に終了するまで、処理を止めることができます。例えば次のようにするということです。(test2.uws)

ACW(GETID("GMAIL - SEARCH RESULTS FOR: FROM:((@MAG2.COM MAG2 ID)) -LABEL:M_MAG2 IS:UNREAD - LUNASCAPE","LunascapeMainWnd","-1"),-4,-4,1032,748,0)
BTN(LEFT,CLICK,192,247,234)
BTN(LEFT,CLICK,703,217,156)
BTN(LEFT,CLICK,727,384,324)
BTN(LEFT,CLICK,697,350,543)

test2.uwsを実行すると思ったようには動いてくれないと思います。その原因はGETID文が入っているACW文にあります。ACW文は第1引数で与えられたウィンドウのサイズを変化させるための文ですが、これはウィンドウサイズが変化しようがしまいが戻り値は変化しません。そのため、タイトルバーに含まれる文字列を絶対指定した(つまり完全一致するまで待った)としても、処理(マウスボタンをクリックする処理)は次に進み、ラベリング処理を待ったことにはならないからです。

GETID文は戻り値に真と偽を取るので、GETID文をIFB文の条件式に含めて、ラベリング処理をIFB文で囲みます。(test3.uws)

IFB GETID("GMAIL - SEARCH RESULTS FOR: FROM:((@MAG2.COM MAG2 ID)) -LABEL:M_MAG2 IS:UNREAD - LUNASCAPE","LunascapeMainWnd","-1") THEN
  ACW(GETID("GMAIL - SEARCH RESULTS FOR: FROM:((@MAG2.COM MAG2 ID)) -LABEL:M_MAG2 IS:UNREAD - LUNASCAPE","LunascapeMainWnd","-1"),-4,-4,1032,748,0)
  BTN(LEFT,CLICK,192,247,234)
  BTN(LEFT,CLICK,703,217,156)
  BTN(LEFT,CLICK,727,384,324)
  BTN(LEFT,CLICK,697,350,543)
ENDIF

IFB文の条件式が真になるまで、つまりGmailウィンドウのタイトルバーが元に戻りラベリング処理が終わるまで、IFB文中のラベリング処理は行われません。さらにタイトルバーの文字が元に戻るまで無限に待ち続けるので、たとえ処理が100秒かかろうが3秒で終わろうが、終わった瞬間に次の処理に移ることができます。

多くのメールを一気にラベリングするには(検索条件が非常に長い場合)

検索条件が非常に長い場合に、前述の方法を使ってUWSCファイルを作ると、GETID文第1引数にタイトルバーの内容がすべて入りきらない場合があります。その場合どうするか。異なる複数のメールアドレスを検索条件に入れるとそれだけで第1引数がいっぱいになってしまいます。

IFB GETID("GMAIL - SEARCH RESULTS FOR: -LABEL:ENGLISHMINI IS:UNREAD FROM:(M0050962.S1J@M.MINI.MAG2.COM|M0050051.9AN@M.MINI.MAG2.COM|M0047504.Z1S@M.MINI.MAG2.COM|00314450R@MERUMO.NE.JP|00365506R@MERUMO.NE.JP|M0042702.WH4@M.MINI.MAG2.COM) - LUNASCAPE","LunascapeMainWnd","-1") THEN
  ACW(GETID("GMAIL - SEARCH RESULTS FOR: -LABEL:ENGLISHMINI IS:UNREAD FROM:(M0050962.S1J@M.MINI.MAG2.COM|M0050051.9AN@M.MINI.MAG2.COM|M0047504.Z1S@M.MINI.MAG2.COM|00314450R@MERUMO.NE.JP|00365506R@MERUMO.NE.JP|M0042702.WH4@M.MINI.MAG2.COM) - LUNASCAPE","LunascapeMainWnd","-1"),-4,-4,1032,748,0)
  BTN(LEFT,CLICK,190,300,0)
  BTN(LEFT,CLICK,203,254,0)
  BTN(LEFT,CLICK,203,432,0)
ENDIF

接続元IPアドレスの表示

2008/08/17ごろから、ブラウザ経由でGmailにアクセスするとIPアドレスが表示されるようになった。

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2003-12-16T01:23:18+09:00
  2. Modified: 2003-12-16T14:13:53+09:00
  3. Generated: 2016-12-24T23:09:19+09:00