5 分ほどお時間をいただけますか?
オンライン アンケートに回答して、Google Workspace のドキュメントの改善にご協力ください。
|
コーディング レベル: 初級
所要時間: 10 分
プロジェクト タイプ: カスタム メニューを使用した自動化
目標
- ソリューションの機能を理解します。
- ソリューション内で Apps Script サービスが何を行うかを理解します。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
Google スプレッドシートのデータを使用してメール テンプレートに自動的にデータを入力します。メールは Gmail アカウントから送信されるため、受信者からの返信に返信できます。
重要: この差し込み印刷のサンプルは、Google サービスの割り当てで説明されているメールの上限の対象となります。
仕組み
Gmail の下書きテンプレートを作成し、Google スプレッドシートのデータに対応するプレースホルダを挿入します。シートの各列見出しはプレースホルダ タグを表します。スクリプトは、スプレッドシートの各プレースホルダの情報を、メールの下書きの対応するプレースホルダ タグの場所に送信します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- Gmail サービス - 受信者に送信する下書きメールを取得、読み取り、送信します。
- メールに絵文字などの Unicode 文字が含まれている場合は、メールサービスを使用してください。詳しくは、メールに Unicode 文字を含める方法をご覧ください。
- スプレッドシート サービス - 各受信者のパーソナライズされた情報でメールのプレースホルダを埋めます。
動画で学習したい場合は、
Google Workspace デベロッパー チャンネルでは、ヒント、テクニック、最新機能に関する動画を公開しています。
|
前提条件
このサンプルを使用するには、次の前提条件を満たしている必要があります。
- 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 デベロッパー エキスパートである Martin Hawksey 氏によって作成されました。
- Martin の Twitter アカウントは @mhawksey です。
- Martin の Google Apps Script 関連のブログ投稿をご覧ください。
- Martin の YouTube 番組「Totally Unscripted」をご覧ください。
このサンプルは、Google デベロッパー エキスパートの協力を得て Google が管理しています。