English/日本語

Google Workspaceマーケットプレイスでこのアドオンを入手する GitHub Super-Linter Total alerts
Gmailのテンプレート(下書き)を元にして受信者ごとに宛名などを差し込んだメールを作成する、オープンソースのGoogle Workspaceアドオン

レガシー(スプレッドシート)版
Google Workspaceアドオンとして提供される前に公開していたレガシー版(スプレッドシート版)は現在、開発が停止しています。今後、Google側での仕様変更等により使用できなくなる可能性もありますので、ご注意ください。ソースコードやサンプルスプレッドシートを確認したい方のためにGitHub上のブランチとして残していますので、必要に応じてご参照ください。

概要

Group Mergeのアイコン GmailとGoogleスプレッドシートを使って、宛名や会議の日時などの情報を宛先ごとに個別化したメールを作成して送信するための、オープンソースのGoogle Workspaceアドオン。

  • 宛先リスト内に同じメールアドレスの宛先が2つ以上ある場合に、内容を1通のメールにまとめられる「まとめ差し込み(Group Merge)」機能つき。
  • Gmailの下書きをテンプレートとして利用。書式設定(文字の色など)や添付ファイルCC及びBCC、そしてGmailラベルが差し込み後のメールにも引き継がれる。

使い方

このセクションで説明されている「使い方」はあくまで開発者オススメの基本となる流れであって、「遵守すべし」というものではありません。アドオン自体はコンテキスト非依存型、つまりGmail・Googleスプレッドシートのいずれの画面でも自由に呼び出すことができるものなので、ユーザ側で使いやすいそれぞれの「流れ」を見つけていただければ幸いです。オープンソースなので、それこそ、ご自由に。

1. アドオンをインストール

Google Workspace Marketplaceから本アドオンをインストール。
このインストール作業は基本的にユーザごとに1回行えば、以降、特別な作業は不要。アップデート等の更新は自動的に行われる。

2. 宛先リストを作成

Googleスプレッドシートで宛先リストを作成する。既存のスプレッドシートでも可。
宛先リストとして使用しているスプレッドシートのスクリーンショット例

  1. リストとなるシートの1行目はヘッダーとして、列名以外は入力しない。
  2. 日付や時刻の表示は、スプレッドシートに表示されている形式がそのまま差し込みメールとして反映される。宛先が英語圏の場合はApr. 1, 2021、日本人の場合は2021年4月1日などと差し込みデータの形式を相手によって変えたい時は、宛先リストの表示形式を調整する。
  3. セル内の改行は差し込み後のメールにも反映されるが、文字色太字イタリック体取り消し線などの書式設定は引き継がれない。代わりに、Gmail画面にてテンプレートとなる下書きメールを作成する際に、各種HTMLによる書式設定が可能となる。
  4. スクリーンショット↑にあるように、ひらがなや漢字といった基本的な全角文字をヘッダ行(列名)に使うことも可能。
  5. 小文字のi単体を列名として使用することは、予期しないエラーを防ぐためにも避けること。後述しているように、このiはまとめ差し込み(Group Merge)機能の一部として使用されている要素。

ご注意ください 1日に送信できるGmail/Google Workspaceメールの数は、Googleによって制限されています。このアドオンは、あくまでその制限の中でメールを一括送信するためのものです。

3. Googleスプレッドシートからアドオンを開く

Group Mergeアドオンのアイコンをクリックし、サイドパネルを開く。
GoogleスプレッドシートのサイドパネルにあるGroup Mergeアイコン
以下のようにアドオンのページがサイドパネルとして表示される:
サイドパネルで起動したGroup Mergeアドオン

4. 設定項目を入力する (1) - Googleスプレッドシート編

サイドパネルをスクロールしながら、セクション1「宛先リストの設定」の各項目(スプレッドシートURLシート名、および宛先メールアドレス)を入力していく。任意入力のCCBCCは空白でも問題ない。

  • スプレッドシートURLは、Googleスプレッドシートからこのアドオンを開いている場合、開いているスプレッドシートのURLが自動入力されている。
  • Toは差し込みフィールド(merge fields)として入力する(例:{{Email}})。2つ以上の差し込みフィールドは入力できないことに注意(不可の例:{{Email1}},{{Email2}})。この場合はエラーが返される。宛先によって複数の可変な送信先を設定したい場合はCCBCCを活用する。1つの差し込みフィールドに、複数の固定メールアドレスをカンマ区切りで入力することは可能(例:{{Email}},fixedEmail1@example.com,fixedEmail2@example.com)。
  • [任意] CCBCCには、Googleが定める制限内であれば、いくらでも差し込みフィールドを入れられる(例:{{cc1}},{{cc2}},{{cc3}}, ...)。

セクション1「宛先リストの設定」の各項目を入力したのち、サイドパネルを下までスクロールして「ユーザ設定として保存」ボタンをクリック。
「ユーザ設定として保存」ボタン

設定はどこに保存される? 設定の保存と呼び出しに、設定がどのように保存されて、呼び出されるかの詳細があります。

5. テンプレートとなる下書きメールをGmailで作成

Gmailに移動し、テンプレートとなる下書きを作成する。
テンプレートとなるGmail下書き例のスクリーンショット

5-1. To、CC、BCC、およびReply-To設定

テンプレートのTo、CC、BCCを編集する

  • メールの編集画面では、基本的にToCCBCCは空白とする(アドオンのサイドパネルで設定するため)。編集画面で差し込みフィールド付きの宛先(例:{{Email}})を入力しても、無効にされる。ただし上のスクリーンショット例のようにmyTeam@mydomain.comといった固定のメールアドレスであれば、差し込み後の各メールにも引き継がれる。
  • Reply-To設定はオプションでアドオンのサイドパネルから有効にして任意の値を指定することができる(初期設定では無効)。「高度な設定」の「Reply-To」を参照のこと。

5-2. 件名と本文

テンプレートの件名及び本文では、差し込みフィールド(merge fields){{ }}まとめ差し込み(group merge)フィールド[[ ]]を使うことで、受信者ごとに個別化したメールを作成することができる。
テンプレートとなる下書きの件名と本文の編集画面

テンプレートとなる下書きメールの件名に重複がないようご注意ください。入力した件名を持つ下書きメールが2通以上ある場合、エラーとなります。

初期設定では、{{二重の中かっこ(半角)で括られた文字列}}が差し込みフィールドとして認識される。

{{会社名}} {{氏名}}様
〜〜〜
  • フィールド名は、2. 宛先リストを作成で作成した宛名リストのフィールド名と一致している必要がある。全角・半角や大文字・小文字も区別されることに注意。
  • テンプレートでフィールドとして指定したもののそのようなフィールドが宛先リストに存在しない場合、もしくは該当するフィールドの値が空白だった場合に差し込む文字列は、任意に設定できる。初期設定ではNAとなっている。この文字列は「高度な設定」の「データ不在時の差し込みテキスト」で調整できる。
  • リッチテキスト(HTMLメール)で下書きを作成したのであれば、書式設定等も引き継がれる。

宛先リストで、同じ宛先についてのエントリーが複数存在する場合に、その宛先についての内容を1通のメールにまとめることができるまとめ差し込み(Group Merge)機能については、専用の項目を設けてあるので、そちらを参照のこと。

Pro Tips💡
差し込みフィールド及びまとめ差し込みフィールドのマーカーは「高度な設定」の「フィールドマーカー」にて変更可能です。

5-3. 添付ファイル

テンプレートとなる下書きメールに添付された添付ファイル(インライン画像を含む)は、差し込み後のメールにも同じように添付される。
通常の添付ファイルとインライン画像のスクリーンショット例

Pro Tips💡
インライン画像は、Gmailのメール作成でリッチテキスト(HTML)形式が有効になっている場合にのみ添付できます。

5-4. Gmailラベル

テンプレートとなる下書きメールに付けられたラベルは、差し込み後のメールにも付加される。
Attaching labels to Gmail drafts

5-5. まとめ差し込み(Group Merge)

宛先リストで、同じ宛先についてのエントリーが複数存在する場合に、その宛先に対して1通ずつ(複数回)メールを送るのではなく、内容を1通のメールにまとめて送信したい時には「まとめ差し込み(Group Merge)機能」を利用すると便利。使用例のページにあるように、まとめたいフィールドと個別に列挙したいフィールドをそれぞれ指定して、メールを作成できる。

初期設定では、二重の大かっこ([[ ]])で括られた文字列内の{{フィールド}}がまとめ差し込み(Group Merge)を行う時に個別に列挙したいフィールドとして認識され、宛先リストにある同一宛先のエントリー数分の差し込みが反復して行われる。特別なフィールド{{i}}は、インデックス番号を挿入したい時に使用する。

まとめ差し込み(Group Merge)は初期設定で有効になっている。まとめ差し込みフィールド[[ ]]が存在しないテンプレートにおいてまとめ差し込みが有効になっていたとしても、通常と同様の差し込み処理が行われるだけなので、大概は「有効」のままで問題ない。
まとめ差し込み(Group Merge)の使用例

6. 設定項目を入力する (2) - Gmail編

Gmailのサイドパネルからアイコンをクリックすると、4. 設定項目を入力する (1) - Googleスプレッドシート編 で記入した項目(スプレッドシートURLなど)が入力された状態でサイドパネルが開く。
GmailサイドパネルのGroup Mergeアイコン

セクション2「テンプレートの設定」以降を記入する。初めての方は、テンプレートとして作成した下書きメールの件名を「テンプレートとなる下書きメールの件名」にコピー&ペーストするだけで、ひとまず基本的な差し込みメール作成の準備は整う。まとめ差し込み(Group Merge)機能は初期設定で有効になっている。
テンプレートとして作成した下書きメールの件名を「テンプレートとなる下書きメールの件名」にコピー&ペーストしているスクリーンショット

「高度な設定」セクションなど、設定項目の詳細については設定を参照のこと。

7. 差し込みメールの作成

前項までの設定項目とGmailテンプレートをもとに、差し込みメールを作成。サイドメニュー最下部にあるボタン「下書き作成(差込テスト)」もしくは「送信(差込メール送信)」のいずれかを選択する。
「下書き作成(差込テスト)」ボタンと「送信(差込メール送信)」ボタンのスクリーンショット

  • 下書き作成(差込テスト):差し込み済みのメールをGmailの下書きとして保存する。それぞれのメールについて差し込みが想定どおり行われているかなどを確認し、必要に応じて通常のメールと同じように修正・編集できる。
  • 送信(差込メール送信):差し込みメールを作成し、直接送信する。

Pro Tips💡
「下書き作成(差込テスト)」ボタンで作成したメールは、アドオンのサイドパネル上部にある「作成済みの下書きを送信(Send Created Drafts)」ボタンによって一括送信できます。「作成済みの下書きを送信」ボタンは、「下書き作成(差込テスト)」を実行して差し込みメールが作成されると有効になり、押下することで直近の「下書き作成(差込テスト)」操作によって作成されたメールのみが送信される仕組みとなっています
「作成済みの下書きを送信(Send Created Drafts)」ボタンのスクリーンショット
Gmailで作成される全ての下書きにはdraft IDという固有の文字列が付与されていて、「作成済みの下書きを送信」での送信対象となる下書きメールは、このIDによって管理しています。「下書き作成(差込テスト)」の処理が実行される都度、その時に作成された一連の下書きメールのdraft IDが、アドオンに付帯するユーザプロパティに保存されます。このプロパティはユーザが「下書き作成(差込テスト)」または「送信(差込メール送信)」を実行するたびに上書きされるようになっていることから、「作成済みの下書きを送信」では常に最新の差し込み済み下書きメールのみが送信される仕組みとなっています。

設定

アドオンのサイドメニューで入力する設定項目の詳細は次のとおり。

基本的な設定

  • スプレッドシートURL:宛先リストとして使用するGoogleスプレッドシートのURL。アドオンをスプレッドシートから起動している場合、この項目は常にその時に開いているスプレッドシートのURLが自動入力される。
  • シート名:当該スプレッドシート内で、宛先リストが記載されているシートの名前。1行目が差込フィールド名となっていることを確認。
  • 宛先メールアドレス:宛先となるメールアドレスが記載されているフィールド(列)の名前。差し込みフィールド(merge fields)として入力する(例:{{Email}})。2つ以上の差し込みフィールドは入力できないことに注意(不可の例:{{Email1}},{{Email2}})。この場合はエラーが返される。宛先によって複数の可変な送信先を設定したい場合はCCBCCを活用する。1つの差し込みフィールドに、複数の固定メールアドレスをカンマ区切りで入力することは可能(例:{{Email}},fixedEmail1@example.com,fixedEmail2@example.com)。
  • [任意] CCBCC:CCやBCCとしてメールを送付する宛先。Googleが定める制限内であれば、いくらでも差し込みフィールドを入れられる(例:{{cc1}},{{cc2}},{{cc3}}, ...)。
  • テンプレートとなる下書きメールの件名:テンプレートとして使用するGmail下書きの件名。入力した件名を持つ下書きが2通以上ある場合、エラーとなる。
  • まとめ差し込み(Group Merge)を有効にするまとめ差し込み(Group Merge)機能を有効にするためのスイッチ。初期設定では有効となっている。

高度な設定

普段は折りたたまれている、調整可能な高度な設定。

Reply-To

  • Reply-To設定を有効にするを有効にし、Reply-Toメールアドレスに適切なメールアドレスを入力することで、それぞれの差し込みメールにReply-Toを設定できるようになる。初期設定では無効。
  • Reply-Toメールアドレスcontact@example.com のような固定値であったり、差し込みフィールドを使った {{replyTo}}@example.com のような変数とすることも可。後者の例では、受信者ごとにreplyTo列に設定した値が、Reply-Toメールアドレス(の一部)として使用される。

❗️重要❗️
Reply-Toを設定した上で、「下書き作成(差込テスト)」によって差し込み済みメールの下書きをいったん作成する人は、Gmail上で通常のように「送信」ボタンを押してしまうとReply-To設定が無視(上書き)されてしまうことに注意する。メールを送信する際は必ず、本アドオンの作成済みの下書きを送信」ボタンを使用すること。

データ不在時の差し込みテキスト

テンプレートでフィールドとして指定したもののそのようなフィールドが宛先リストに存在しない場合、もしくは該当するフィールドの値が空白だった場合に差し込む文字列は、任意に設定できる。初期設定ではNAとなっている。

フィールドマーカー

差し込みフィールドおよびまとめ差し込みフィールドのマーカーは、それぞれ設定項目である差し込みフィールドのマーカーおよびまとめ差し込みフィールドのマーカーにてJavaScriptの正規表現として設定できる。バックスラッシュ(\)そのものはエスケープ不要。

まとめ差し込み番号マーカー{{i}}も、設定項目であるまとめ差し込み番号マーカーから変更できる.

Pro Tips💡
GmailでHTML形式を有効にしたテンプレートを作成していて、フィールドマーカーを編集する場合は、HTML上でもマーカーが検出できることを確認しておくことをお勧めします。

デバッグモード

このモードを有効にすると、差し込みメール作成に伴う各種設定や、その操作における簡単なログがアドオン上で表示されるようになる。また、差し込みが行われるたびに、ユーザは自身のメールアドレスにてその内容をメールで通知される。初期設定では無効。

設定の保存と呼び出し

本アドオンをサイドパネルで開く時、設定項目のほとんどは一定のルールに基づいて事前に入力されている:

  1. もし保存されたユーザ設定が存在するならば、この設定が自動で呼び出される。
  2. ユーザ設定が存在しない時、アドオンは前回設定を呼び出して、事前入力される。
  3. ユーザ設定前回設定がどちらも存在しないときは初期設定が適用される。
  4. 【例外】 アドオンがGoogleスプレッドシートから呼び出されたときは、ユーザ設定や前回設定の存否にかかわらず、その時に開かれているスプレッドシートのURLが自動入力される。

各設定の定義は次のとおり:

  • ユーザ設定:(4. 設定項目を入力する (1) - Googleスプレッドシート編にあるように)ユーザが最後に「ユーザ設定として保存」ボタンを押した時の設定。このボタンを押したことがなければ、ユーザ設定は存在しない。「保存した設定を使用」ボタンにより復元可能。
  • 前回設定:ユーザが最後に「下書き作成(差込テスト)」または「送信(差込メール送信)」ボタンを押して処理が完了した時の設定。完了した処理がなければ存在しない。
  • 初期設定:アドオンインストール時の初期設定。「初期設定に戻す」ボタンにより復元可能。

ユーザ設定前回設定は、いずれもユーザのみが読み書き権限を持つ、アドオンのUser Propertiesに保存されている。ここに保存された情報は、アドオンの開発者や他のアドオンをはじめとするユーザ以外の第三者に共有されることはない。

利用規約

アドオンの使用には、利用規約(英)への同意が必要です。

プライバシーとOAuthスコープに関する情報公開

本節は、利用規約(Terms and Conditions)の条項「Additional Terms(追加条件)」で定義されたように利用規約の追補となるものであり、このアドオンのユーザの個人情報がどこように扱われるかをより詳細に明示したものです。

原文を見る

ソースコード

本アドオンのソースコードはGitHub上で公開されています。機能追加・強化に関する要望や、バグ等の報告についてはGitHub上のIssueによりご連絡ください。ソースコードに関するライセンスは、当該GitHubレポジトリで明示しています。

GitHubを見る

アイコンの出典

The original icon of this add-on was made by Freepik from www.flaticon.com and its colors are modified to fit the theme color of the app.

謝辞

This work was inspired by Tutorial: Simple Mail Merge (Google Apps Script Tutorial).