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(名前は何でもいい)」と入力する。
しばらくすると、追加を知らせるメッセージが上部に表示される。
例2-a:本文が前半と後半に分かれたテンプレートの追加
まず本文を入力して、分けたい部分に「---(改行)」をいれておく。その状態でテンプレートを追加する。
テンプレートの名前を聞かれるので、「sand(名前は何でもいい)」と入力する。
しばらくすると、追加を知らせるメッセージが上部に表示される。
例2-b:本文が前半と後半に分かれたテンプレートを使った場合
テンプレートを適用する前に、本文が入力されている状態でテンプレートを適用すると、
入力されていた値を挟むような形で、テンプレートが適用される。
例3-a:デフォルトで適用されるテンプレートの追加
前の2つの例だと、メール作成時に手動で適用するテンプレートを選択しないといけない。
それが面倒なら、テンプレートを追加するときに差出人を含むようにして、
「#(半角)」で始まる名前(名前はなんでもいい。ここではdefaultとしておく)を入力する。