[Google Apps Script]スプレットシートを参照してGmail下書きを作成する・ケース1
大量のメールを送る作業において役に立つ自動化。GoogleスプレットシートとGmailを連携させるスクリプトを作りました。
スプレットシートにメール内容を記載しておき、ボタンを押すと指定した件数のGmail下書きが作成される、というもの。
今回の例では、宛先メールアドレスは個人情報保護の観点で別システムにある(システム連携できない)、宛先は手入力をしたい状況を想定しています。
【完成イメージ】
【やりたいこと】
・指定した件数だけ、同じ文面のGmail下書きを作成したい
・自動処理はスプレットシート上のボタンを押すだけの簡単操作が良い
・下書き作成する件数を数値で指定したい
・メール本文は特定箇所を強調(文字を大きく、色付け)したい
・送信メールには特定のメールアドレスをCCに入れて同報したい
【前提知識】最低限、下記を知っているのが望ましいです
・スプレットシートのセルの数え方、配列変数の数え方
・スプレットシートにボタンを配置してクリック時の機能を持たせる
・htmlのタグによる文章の編集方法
※各リンク先をご参照下さい
【スクリプト例】
function createDraftMessage() {
let ssa = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ssa.getActiveSheet();
let range = sheet.getDataRange();
let data = range.getValues();
for(let i = 0; i<data[0][1]; i++){
let recipient = "enteremail@example.co.jp"
let subject = data[1][1]
let body = data[2][1]
let options ={
"cc":data[3][1],
"htmlBody":body,
};
GmailApp.createDraft(recipient,subject,body,options)
};
}
【ざっくり解説】
1行目:関数を宣言する
2行目:アクティブ(開いている)スプレットシートを指定する
3行目:アクティブなスプレットシートのシートを指定する
4行目:指定したシートに入力されいるデータ範囲を指定する
5行目:指定したデータ範囲のデータを取得する
各セルの値をdata[行番号][列番号]という変数に入れる
7行目:指定したメール件数の回数だけ、8〜16行目を繰り返す
結果、指定した件数のGmail下書きが作成される
8行目:"recipient"という変数に宛先メールアドレスを入れる
今回、宛先メールアドレスは手入力したい。
だけど自動化する上で空にできないので存在しないメールアドレスを仮で入れる
9行目:"subject"という変数にメールの件名を入れる
スプレットシートのセルB2の内容が変数"data[1][1]"に入っている
10行目:"body"という変数にメールの本文を入れる
スプレットシートのセルB3の内容が変数"data[2][1]"に入っている
11行目:"options"という変数でメールのその他要素を入れる
今回、CCに入れるメールアドレス、メール本文がhtml形式である指定を行なっている
12行目:CCに入れるメールアドレスがスプレットシートのセルB4にあることを指定している。この内容が変数"data[3][1]"に入っている。
13行目:メール本文がhtml形式であることを指定している
16行目:8行目〜13行目の条件でGmail下書きを作成する