Gmail にテンプレート切り替え機能を付けてみた

20071103追記
Gmail 2.0 では動作しません。そのうち対応するつもり。
20080125追記
Greasemonkey 0.7.20080121.0 だと一部障害(返信時に動作しない)が出てるようです。原因がわかれば対応します。
20080129追記
0.1.20080129.0でGreasemonkey 0.7.20080121.0 に対応しました。
20080423追記
コメントにもありますが、Gmailのバージョンアップに伴い、旧バージョンに戻しても以前のテンプレートが使用できなくなっています。原因不明なため、対応の目処は立っていません。
20080501追記
Greasemonkeyで連絡先を取得・編集できないため、Gmail 2.0への対応はできません。実現する方法なり、アイデアなりをお持ちの方はコメントお願いします。
20080510追記
Gmail2で動作するように修正してくださった方がいらっしゃいます。今後はこちらをどうぞ。

 大抵皆そうなんだろうけど、メールを書く場合決まった形があって、あいさつ文・本文・締め言葉・署名という順番で書いている。以前作ったスクリプト で、署名は差出人に応じて自動的に切り替わるようになったけど、あいさつ文や締め言葉は辞書に登録したりして、毎回入力してたわけです。会社で使っていることもあり、社内と社外で定型文が変わってくるので、辞書に登録した語句を忘れたりしてかなり不便だった。これはさすがに面倒なので、さらに Gmail を快適にすべく、テンプレートを切り替えられる Greasemonkey スクリプトを作ってみた。これで署名が複数あっても、定型文が複数あっても平気ですな。

  • ダウンロードはこちら -> Gmail Template Switch
  • 不具合報告なんかは こちら からどうぞ。報告するときは 不具合一覧 を見て、重複してないか確認してください。
  • リッチテキスト(HTML形式)には対応していません。


 このスクリプトの作成にあたり、Gmailの使い方 管理人様にはアイデアを提供していただいたり、テストに協力していただいたりしました。この場を借りて感謝します。

 ※ 内部で jQuery 1.1.4 を使ってます(以前のエントリ 参照)。これがなかったら途中で挫折してたかも、ってくらい依存してる。jQuery ステキすぎ。

使い方をキャプチャした動画


※ この動画は、下の方にある例を実際に動かしてみたもの。

インストールしたら


 まずはメール作成画面に移動。そうすると、作成画面上部と下部の「破棄」ボタンの右にコンボボックスが追加される。
この時点では、スクリプトの初期化処理中なので、なにもできない。



 しばらくすると、コンボボックスの中身が変わって、操作できるようになる。
インストール直後は、テンプレートを追加することしかできない。

テンプレートを追加するには

 テンプレートとして登録したい状態になるように、いつも通りにメールを作成していく。メールが完成したら、コンボボックスから「差出人を含む(/除く)」を選択する。

 そうするとテンプレートの名前を入力するダイアログが表示されるので、好きな名前を入力する。
(先頭「#」のみ特別。意味は後述する)
テンプレートの登録が完了したら、画面上部のメッセージエリアに登録が完了したことを知らせるメッセージが表示される。以後は、入力した名前でテンプレートを呼び出すことができるようになる。

テンプレートとして登録されるのは、「差出人」、「宛先」、「CC」、「BCC」、「件名」、「本文前半・後半(分け方は後述)」。

※ テンプレ―トは最大9個です。

テンプレートを適用すると?

 登録したテンプレートに値が入力されている場合のみ、以下のように動作が変わってくる。

差出人
テンプレートの値で入力値を置き換える。
宛先、CC、BCC
入力値にテンプレートの値を追記する。ただし、すでに入力されているアドレスは除く。
件名
入力値がない場合だけ、テンプレートの値を入力する。
本文
テンプレートの本文前半、既存の入力値、テンプレートの本文後半となる。

なお、テンプレートを1回適用すると、そのメール作成中はその時の値を記録しておく。以降は、テンプレートを切り替えてもその時に記憶しておいた値に、選択したテンプレートを適用した形になる。
Undoすると、その値もリセットされる。

テンプレート名の先頭「#」の役割は?

 差出人を含んだテンプレートのみ有効となる機能で、メール作成開始時に、下の2つのルールを満たすテンプレートを自動的に適用する。

  • メールの差出人と、テンプレートの差出人が同じ。
  • テンプレートの名前が「#」で始まる。

ルールを満たすテンプレートが複数ある場合は、最初に見つかったテンプレートを適用する。

テンプレートの本文の前半と後半の分け方は?

 テンプレートに登録するとき、分けたい位置の行頭に「---(改行)」を入れる。たとえばこういう風に入力しておく。

あいさつ文とかを入力。
---
署名とかを入力。

本文が入力されている状態で、そのテンプレートを適用するとこうなる。

あいさつ文とかを入力。

「テンプレート適用前に入力していた文章」

署名とかを入力。

「---(改行)」が入力されていない場合、本文は前半として扱われる。

例1-a:bccを指定するテンプレートの追加

 まずbccにアドレスを指定して、本文にも文章を入力しておく。その状態でテンプレートを追加する。

テンプレートの名前を聞かれるので、「autobcc(名前は何でもいい)」と入力する。

しばらくすると、追加を知らせるメッセージが上部に表示される。

例1-b:bccを指定するテンプレートを使った場合

新しくメールを作成するときに、「autobcc」を選択する。

そうすると、bccに先ほど入力したアドレスが設定される。

例2-a:本文が前半と後半に分かれたテンプレートの追加

 まず本文を入力して、分けたい部分に「---(改行)」をいれておく。その状態でテンプレートを追加する。

テンプレートの名前を聞かれるので、「sand(名前は何でもいい)」と入力する。

しばらくすると、追加を知らせるメッセージが上部に表示される。

例2-b:本文が前半と後半に分かれたテンプレートを使った場合

テンプレートを適用する前に、本文が入力されている状態でテンプレートを適用すると、

入力されていた値を挟むような形で、テンプレートが適用される。

例3-a:デフォルトで適用されるテンプレートの追加

 前の2つの例だと、メール作成時に手動で適用するテンプレートを選択しないといけない。
それが面倒なら、テンプレートを追加するときに差出人を含むようにして、

「#(半角)」で始まる名前(名前はなんでもいい。ここではdefaultとしておく)を入力する。

例3-b:メールを作成する場合

そうすると、メール作成時の差出人と、「#」で始まる名前のテンプレートで指定した差出人が一致する場合、テンプレートが自動で適用される。

例3-c:メールに返信する場合

返信するときも同じように、差出人が一致したら自動的にテンプレートが適用される。
たとえばこういうメールに返信すると、

引用文を残したまま、「#」で始まる名前のテンプレートが適用される。

アンインストールするには?

 このスクリプトはFirefoxのPreferenceと、Gmailの連絡先に設定やデータを保存しているので、両方とも削除する必要がある。

スクリプトの削除

まずGreaseMonkey の「ユーザスクリプトの管理」メニューを選択する。

「関連付けられた設定も削除」にチェックを入れて削除する。

Firefoxのアドレスに「about:config」と入れて、「gts」で検索して出てくる設定値を削除でもOK。

連絡先の削除

次に Gmail の連絡先で、「gts」で検索して出てくる連絡先「gtssettings0」〜「gtssettings9」を削除する。