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

仕組み
Gmail の下書きテンプレートを作成します。このテンプレートには、スプレッドシートのデータに対応するプレースホルダが含まれています。シートの各列ヘッダーはプレースホルダ タグを表します。スクリプトは、スプレッドシートの各プレースホルダの情報を、メールの下書き内の対応するプレースホルダ タグの場所に送信します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- Gmail サービス: 受信者に送信する下書きメールを取得、読み取り、
送信します。
- メールに絵文字などの Unicode 文字が含まれている場合は、 メールサービスを使用してください。メールに Unicode 文字を含めるようにコードを更新する方法をご覧ください 。
- スプレッドシート サービス: 各受信者のパーソナライズされた情報でメールの プレースホルダを埋めます。
|
動画で学習したいですか?
Google Workspace Developers チャンネルでは、ヒント、テクニック、最新機能に関する動画を公開しています。
|
前提条件
このサンプルを使用するには、次の前提条件を満たす必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
次の手順に沿ってスクリプトを設定します。
Apps Script プロジェクトを作成する
次のボタンをクリックして、Gmail/スプレッドシートの差し込み印刷 のサンプル スプレッドシートのコピーを作成します。このソリューションの Apps Script プロジェクトは、スプレッドシートに添付されています。
コピーしたスプレッドシートで、[受信者] 列をメールへの差し込みで使用するメールアドレスで更新します。
(省略可)列を追加、編集、削除して、メール テンプレートに含めるデータをカスタマイズします。
[受信者] 列または [送信済みメール] 列の名前を変更する場合は、Apps Script プロジェクトで対応するコードを更新する必要があります。Apps Script プロジェクトを開くには、スプレッドシートで [拡張機能] [Apps Script] を選択します。
メール テンプレートを作成する
- Gmail アカウントで、メールの下書きを作成します。スプレッドシートのデータをメールに含めるには、中かっこで囲まれた列名に対応するプレースホルダ(
{{First name}}など)を使用します。- メールのテキストの書式を設定する場合は、プレースホルダの角かっこにも書式を設定する必要があります。
- プレースホルダでは大文字と小文字が区別されます。列ヘッダーと完全に一致している必要があります。
- メールの下書きの件名をコピーします。
スクリプトを実行する
- スプレッドシートで、[**差し込み印刷**] > [**メールを送信**] をクリックします。このカスタム メニューを表示するには、ページを更新する必要がある場合があります。
- メッセージが表示されたら、スクリプトを承認します。 <<../_snippets/oauth.md>>
- [**差し込み印刷**] [**>**] [**メールを送信**] をもう一度クリックします。
- メール テンプレートの件名を貼り付けて [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 Developer Experts である Martin Hawksey が作成しました。
- Martin の Twitter アカウントは @mhawksey です。
- Martin の Apps Script 関連の ブログ 投稿をご覧ください。
- Martin の YouTube 番組「Totally Unscripted」をご覧ください。
このサンプルは、Google デベロッパー エキスパートの協力のもと、Google によって管理されています。