rcmdnk's blog

メールの超プロが教えるGmail仕事術

Gmailでのラベルやフィルタを色々更新したのでそのまとめ。

Sponsored Links

ラベルの管理

最近では携帯もキャリアメールは辞めてGmailだけになりつつあるのですが、 色々なところからのメールを一纏めにしてるのでラベル付けできちんと管理が必要です。

ラベル付けですが、適当な名前で付けて行っても良いのですが、 やはり上の方に重要なラベルを置いておきたい所。 (今のところ昔ながらのフォルダ的な感覚で使ってます。)

そこで、少なくとも幾つか重要なラベルについては言葉の前に数字を付けて整理します。

  • 00_ToDo
  • 01_NoLabel
  • 10_携帯
    • 1001_docomo
    • 1002_au
    • 1003_softbank
    • 1004_mobile_others
  • 20_仕事
  • 30_GitHub
  • 31_GoogleGroups
  • 99_Other
  • Tmp

必要なら各ラベルの下にサブラベルで1001_docomoみたいな感じでラベル付けしていきます 1

以前Evernoteかなんかの整理方法みたいのでどこかで見かけた方法ですが、 数字を付けておくことで自動で整理して表示される場合に思い通りの順番にできるで とても使いやすくなります。

Gmailの便利なところはラベルを変更すると自動的にフィルタも更新されるところで、 上の番号を変えたい時でも、 30_GitHub35_GitHubとラベルを変更するだけで フィルタも自動的に更新されるのでとても便利です。 (ただし下に書くようにちょっと注意が必要)

基本的に全てのメールにラベルを付ける様にしています。 幾つか直ぐに見る必要があるものに関してはフィルタで受信箱にも残します。 携帯でもパソコンでも、大概のソフトは受信箱(Inbox)のメールだけを知らせてくれるものが 多いので。

重要でないものについては都度99_Otherにフィルタされる様にしていきます。 それでも引っかからないものはNoLabelへ。 ここに入るメールは受信箱には残しませんが、まだフィルタに定義されてないけど 重要なメールがある可能性が高いので上の方に設置。

00_ToDoは手動で必要な物に付けておくメモ用ラベル。

最後のTmpはGoogleカレンダーからのお知らせなど、後で直ぐに消すものを 入れるようにしてあります(受信箱で一回見ればそれで後は要らないので)。

フィルタ設定

特定の人とのやりとりならFromTo欄を使いますが 基本的には色々自由の効く含む欄に設定を書いていきます。

filter

含むを使う時に重要なのは

  • from:a.ne.jpa.ne.jpを含むアドレスから来るメールを指定
  • to:b.ne.jpb.ne.jpを含むアドレスへ宛てたメールを指定
  • cc:b.ne.jpb.ne.jpを含むアドレスへCCしたメールを指定
    • fromtoなどについてはアドレスの中の一部に含まれてればそのメールにフィルががかかる
  • (){}でグループ化出来る。
    • ()で囲まれた中(もしくは何にも囲まれて無い所)では半角スペースはand
    • {}で囲まれた中での半角スペースはor
    • ()で囲まれた中(もしくは何にも囲まれて無い所)ではorはOR(大文字)でも使える
  • -(ハイフン)が否定。ただしハイフンの後にスペースを入れてはいけない。(e.g. -from:a.ne.jp)
  • label:abcabcというラベルがついたメールを指定
    • labelについてはきちんと正確に一致したものだけにフィルタがかかる
  • has:userlabelsでユーザー定義のラベル(inboxtrashspam等以外)のラベルが付いたメールを指定
  • has:nouserlabelsでユーザー定義のラベル(inboxtrashspam等以外)のラベルが付いてないメールを指定

更に詳しくは公式ヘルプで 2

最後のhas:nouserlabelsなんかが意外と便利です。

Gmailではフィルタをかける際に、指定したフィルタを上から順にかけていきます。 そして、受信トレイをスキップ(アーカイブ)と言う項目がありますが、 このフィルタにかかったものは以降のフィルタにはかかりません。

filter2

一方、ラベルをつけたりしても受信トレイに残っているものに対しては以降のフィルタもかかっていきます。

これを踏まえてこんな感じでフィルタを作っていきます。

  • フィルタ1: 携帯docomo:
    • 含むfrom:docomo.ne.jp、ラベル1001_docomo
  • フィルタ2: 携帯au:
    • 含むfrom:ezweb.ne.jp、ラベル1002_au
  • フィルタ3: 携帯softbank:
    • 含むfrom:{softbank.ne.jp i.softbank.jp vodafone.ne.jp}、ラベル1002_softbank
  • フィルタ4: 携帯others:
  • フィルタ5: Googleカレンダー
  • フィルタ6: NoLabel
    • 含む-has:nouserlabels受信トレイをスキップにチェック、ラベル01_NoLabel

こんな感じで。 実際に携帯のキャリア毎に分けるなんてことはしませんが例として。

キャリアメールから来た物に関してはそれぞれのラベルを、 また、相手のアドレスはキャリアメールでは無いけれど(ここまででラベルが付いてない)、 自分の携帯アドレス宛に来たものはその他携帯メールとしてラベル付け。

その後にGoogleカレンダーからの通知をTmpへ。

最後に、ラベルが付かなかったものについて受信トレイをスキップして01_NoLabelを付ける。

ここでGmailのちょっとなんとかしてもらいたいところなんですが、 Gmailではフィルタを作成したり変更したりすると、 最後に変更したものが一番下に来ます。 この順番は今のところ手動では簡単に変更出来ません。

ただ、上にも書いたように、途中で受信トレイをスキップという動作をすると それ以降のフィルタにはかからないので、 順番が非常に重要です。

上の例のフィルタも最後のNoLabelを最初に置いてしまうと 携帯メールでも全てNoLabelへ入ってしまって受信トレイにも残りません。

この点は野暮ったいですが、最後に持ってきたいフィルタを一度編集を押して 何も変更しないままフィルタをアップデートするしかありません。

上の例ではもし、docomoausoftbankのいずれかを編集してアップデートしたら、 まず、携帯othersを変更なしアップデート、 その後NoLabelを変更無しアップデートする必要があります。

上でラベルを変更した際にフィルタも自動的にアップデートされる、と書きましたが、 このアップデートでもフィルタのアップデートとみなされ、対応するフィルタは 一番下に来てしまいます。

従って、ラベルを編集した際にもフィルタを確認して順番を確認する必要があります。

運用によってはフィルタの順番が関係なく出来るかもしれませんが、 上の様なやり方をする限りではフィルタの順番に十分に注意する必要があります。

Google Apps Scriptで自動削除

上でも触れましたがGoogleカレンダーからの通知メールなどは取っておいても仕方ないので 一定時間後に消すようにしています。 これくらいなら手動でやっても良いのですが、Gmailなら Google Apps Script で自動的に削除する事が出来ます 3

drive

まず、Google Apps Scriptのページ にアクセスするか Google Drive作成からスクリプト を選んで新しいGmailCleanUp等といった名前のプロジェクトを作ります。

script

さらに、コード.gsというスクリプトが表示されていますが、 これも適当にcleanup.gs等と名前を変えておきます。 (単に気分的な。左のコード.gsと書いてある所の右側の矢印を押すと名前の変更などの項目が出ます)

出来たら、このスクリプトに以下の様なコードを記入します。

cleanup.gs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function cleanUp() {
  var delayDays = 7 // Enter # of days before messages are moved to trash
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var labels = ["Tmp"];
  for (var i = 0; i < labels.length; i++){
    var label = GmailApp.getUserLabelByName(labels[i]);
    var threads = label.getThreads();
    for (var j = 0; j < threads.length; j++) {
      if (threads[j].getLastMessageDate()<maxDate){
        threads[j].moveToTrash();
      }
    }
  }
}

Googleスクリプトの詳細は省きますが、上でやってることは

  • Tmpとラベルの付いたメールで7日以上前の物をゴミ箱へ移動

と言ったこと。 変更する点は

  • delayDaysの値で保持する日数
  • labelsで対象とするラベル(配列なので["Tmp", "Tmp2"]等として複数指定可)

位でOKだと思います。

次に、これを自動で実行するようにするわけですが、 上の時計の様なボタンを押すと新しくトリガーが追加できるので、以下の様な感じで 一日一回トリガーされる様に設定します。

trigger

その右側のボタンで、矢印が実際にスクリプトを実行するボタン、 蜘蛛みたいなのがデバッグボタンですので、 一度作ったらこれらを使ってテストしてみると良いと思います。

Sponsored Links
  1. 。 トップのラベルを10個くらいにしておいてその下にサブラベルを作った方が ホントはモット良いかも。

  2. 詳細検索 - Gmail ヘルプ

  3. Create time-based Gmail filters with Google Apps Script

Sponsored Links

« Linuxでのローカル初期設定 フレッツ光+BroadStation(Buffalo)で繋がらなくなるトラブルについて »