コーディング レベル: 初級
所要時間: 10 分
プロジェクト タイプ: カスタム メニューを使用した自動化
目標
- ソリューションの機能について理解する。
- ソリューション内での Apps Script サービスの機能について理解する。
- スクリプトを設定する。
- スクリプトを実行する。
このソリューションについて
スプレッドシートのデータを使用してメール テンプレートを自動的に入力します。メールは Gmail アカウントから送信されるため、受信者の返信に対応できます。
重要: このメールへの差し込みのサンプルには、Google サービスの割り当てで説明されているメールの上限が適用されます。

仕組み
Gmail の下書きテンプレートを作成します。このテンプレートには、Google スプレッドシートのデータに対応するプレースホルダが含まれています。シートの各列ヘッダーはプレースホルダ タグを表します。スクリプトは、スプレッドシートから各プレースホルダの情報をメールの下書きの対応するプレースホルダ タグの場所に送信します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- Gmail サービス: 受信者に送信する下書きメールを取得、読み取り、
送信します。
- メールに絵文字などの Unicode 文字が含まれている場合は、 メールサービスを使用してください。メールに Unicode 文字を含めるようにコードを更新する方法をご覧ください 。
- スプレッドシート サービス: 各受信者のパーソナライズされた情報でメールの プレースホルダを埋めます。
|
動画で学習したい場合は、
Google Workspace デベロッパー チャンネルで、ヒント、テクニック、最新機能に関する動画をご覧ください。
|
前提条件
このサンプルを使用するには、次の前提条件を満たす必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
次の手順に沿ってスクリプトを設定します。
Apps Script プロジェクトを作成する
次のボタンをクリックして、Gmail/スプレッドシートの差し込み印刷 のサンプル スプレッドシートのコピーを作成します。このソリューションの Apps Script プロジェクトは、スプレッドシートに添付されています。
コピーしたスプレッドシートで、メールへの差し込みで使用するメールアドレスで [受信者] 列を更新します。
(省略可)列を追加、編集、削除して、メール テンプレートに含めるデータをカスタマイズします。
[受信者] 列または [メール送信済み] 列の名前を変更する場合は、Apps Script プロジェクトで対応するコードを更新する必要があります。スプレッドシートから Apps Script プロジェクトを開くには、 [拡張機能]> [Apps Script] を選択します。
メール テンプレートを作成する
- Gmail アカウントで、メールの下書きを作成します。スプレッドシートのデータをメールに含めるには、中かっこで囲まれた列名に対応するプレースホルダ(
{{First name}}など)を使用します。- メールのテキストの書式を設定する場合は、プレースホルダの角かっこも書式設定する必要があります。
- プレースホルダでは大文字と小文字が区別されます。列ヘッダーと完全に一致している必要があります。
- メールの下書きの件名をコピーします。
スクリプトを実行する
- スプレッドシートで、[**差し込み印刷**] > [**メールを送信**] をクリックします。このカスタム メニューが表示されない場合は、ページの更新が必要になることがあります。
メッセージが表示されたら、スクリプトを承認します。
OAuth 同意画面に「このアプリは確認されていません」という警告が表示された場合は、 [詳細]> [{プロジェクト名}に移動(安全ではありません)] を選択して続行します。
[**差し込み印刷**] [**>**] [**メールを送信**] をもう一度クリックします。
メール テンプレートの件名を貼り付けて [OK] をクリックします。
シートにフィルタを適用した場合でも、スクリプトはフィルタされた参加者にメールを送信しますが、タイムスタンプは追加されません。
コードを確認する
このソリューションの Apps Script コードを確認するには、 [ソースコードを表示]をクリックします:
ソースコードを表示
Code.gs
修正
メールへの差し込みの自動化は、ニーズに合わせて編集できます。次の例では、ソースコードに加えることができるオプションの変更をいくつか示します。
Bcc、Cc、ReplyTo、From のメール パラメータを追加する
サンプルコードには、メールの送信元アカウントの名前、返信先のメールアドレス、Bcc と Cc のメールアドレスを制御できる追加のパラメータがいくつか含まれています。これらのパラメータは コメントアウトされています。
追加するパラメータを有効にするには、各パラメータの先頭にあるスラッシュ
// を削除します。
次のサンプルは、ほとんどのメール パラメータを有効にする sendEmails
関数からの抜粋を示しています:
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, { htmlBody: msgObj.html, bcc: 'bcc@example.com', cc: 'cc@example.com', from: 'from.alias@example.com', name: 'name of the sender', replyTo: 'reply@example.com', // noReply: true, // if the email should be sent from a generic no-reply email address (not available to gmail.com users)
上記のサンプルでは、replyTo パラメータが設定されているため、noReply パラメータはコメントアウトされたままです。
メールに Unicode 文字を含める
メールに絵文字などの Unicode 文字を含める場合は、 Gmail サービスではなくメールサービスを使用するようにコードを更新する必要があります。
サンプルコードで、次の行を更新します。
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
この行を次のコードに置き換えます。
MailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
寄稿者
このサンプルは、エディンバラ フューチャーズ インスティテュートのラーニング デザインおよびテクノロジー リード、ブロガー、Google デベロッパー エキスパートの Martin Hawksey が作成しました。
- Martin の Twitter アカウントは @mhawksey です。
- Martin の Apps Script 関連の ブログ 投稿をご覧ください。
- Martin の YouTube 番組「Totally Unscripted」をご覧ください。
このサンプルは、Google デベロッパー エキスパートの協力を得て Google が管理しています。