コーディング レベル: 初級
所要時間: 10 分
プロジェクトの種類: カスタム メニューを使用した自動化
動画で学習したい場合は、
Google Workspace デベロッパー チャンネルでは、ヒント、コツ、最新機能に関する動画を視聴できます。
|
目標
- ソリューションの機能について理解する。
- ソリューション内での Apps Script サービスの役割を理解する。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
Google スプレッドシートのデータをメール テンプレートに自動的に入力します。メールは Gmail アカウントから送信されるため、受信者の返信に返信できます。
重要: このメールへの差し込みのサンプルには、Google サービスの割り当てで説明されているメールの上限が適用されます。
仕組み
スプレッドシートのスプレッドシート内のデータに対応するプレースホルダを使用して、Gmail の下書きテンプレートを作成します。シート内の各列見出しはプレースホルダ タグを表します。このスクリプトは、各プレースホルダの情報がスプレッドシートからメールの下書き内の対応するプレースホルダ タグの位置に送信されるようにします。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- Gmail サービス - 受信者に送信する下書きメールを取得、読み取り、送信します。
- メールに絵文字などの Unicode 文字が含まれている場合は、代わりにメールサービスを使用してください。メールに Unicode 文字を含めるようにコードを更新する方法をご覧ください。
- スプレッドシート サービス - メールのプレースホルダに、各受信者向けのパーソナライズされた情報を入力します。
前提条件
このサンプルを使用するには、次の前提条件を満たしている必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットに接続できるウェブブラウザ。
スクリプトを設定する
Apps Script プロジェクトを作成する
- 次のボタンをクリックして、Gmail/スプレッドシートのメールへの差し込みのサンプル スプレッドシートのコピーを作成します。このソリューションの Apps Script プロジェクトがスプレッドシートに添付されています。
コピーを作成 - コピーしたスプレッドシートの [受信者] 列を更新し、メールへの差し込みで使用するメールアドレスを入力します。
- (省略可)列を追加、編集、削除して、メール テンプレートに含めるデータをカスタマイズします。
[Recipient] 列または [Email Sent] 列の名前を変更する場合は、Apps Script プロジェクトで対応するコードを更新する必要があります。スプレッドシートから Apps Script プロジェクトを開くには、[拡張機能] > [Apps Script] をクリックします。
メール テンプレートを作成する
- Gmail アカウントでメールの下書きを作成します。スプレッドシートのデータをメールに含めるには、波かっこで囲まれた列名に対応するプレースホルダ(
{{First name}}
など)を使用します。- メール内のテキストに書式設定する場合は、プレースホルダの角かっこにも書式設定する必要があります。
- プレースホルダでは大文字と小文字が区別され、列見出しと完全に一致している必要があります。
- メールの下書きの件名をコピーします。
スクリプトを実行する
- スプレッドシートで、[差し込み印刷] > [メールを送信する] をクリックします。このカスタム メニューが表示されない場合は、ページを更新してください。
プロンプトが表示されたら、スクリプトを承認します。OAuth 同意画面に [このアプリは確認されていません] という警告が表示された場合は、[詳細] > [{プロジェクト名} に移動(安全でない)] を選択して続行します。
[差し込み印刷] > [メールを送信] をもう一度クリックします。
メール テンプレートの件名を貼り付けて、[OK] をクリックします。
シートにフィルタを適用した場合、スクリプトはフィルタされた参加者にメールを送信しますが、タイムスタンプは追加されません。
コードを確認する
このソリューションの Apps Script コードを確認するには、下の [ソースコードを表示] をクリックします。
ソースコードを表示
コード.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 サービスではなく Mail サービスを使用するようにコードを更新する必要があります。
サンプルコードで、次の行を更新します。
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
この行を次のコードに置き換えます。
MailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
寄稿者
このサンプルは、エディンバラ フューチャーズ インスティテュートの学習デザインおよびテクノロジー リードであり、ブロガーで Google Developer Expert でもある Martin Hawksey 氏によって作成されました。
- Martin の Twitter アカウントは @mhawksey です。
- Martin の Google Apps Script 関連のブログ投稿をご覧ください。
- マーティンの YouTube 番組 Totally Unscripted を視聴する。
このサンプルは、Google デベロッパー エキスパートの協力を得て Google によって管理されています。