[Google Apps Script]スプレットシートを参照してGmail下書きを作成する・ケース2
大量のメールを送る作業において役に立つ自動化。GoogleスプレットシートとGmailを連携させるスクリプトを作りました。第二弾。
スプレットシートに宛先メールアドレス一覧とメール本文を記載しておき、ボタンを押すと宛先メールアドレスの数のGmail下書きが作成される、というもの。送信は自動的に行わない(目視確認をしたい)。
今回の例では、宛先メールアドレスはスプレットシートに一覧でまとめられていて、件名とメール本文、Bccを同じスプレットシートに書く運用です。
【完成イメージ】
【やりたいこと】
・登録されている宛先メールアドレスの数だけ、同じ文面のGmail下書きを作成したい
・自動処理はスプレットシート上のボタンを押すだけの簡単操作が良い
・メール本文は特定箇所を強調(文字を大きく、色付け)したい
・送信メールには特定のメールアドレスをBCCに入れて同報したい
・仮に図のような例でスプレットシートの7行目に宛先メールアドレスを追加した場合、実行ボタンを押すと5件の下書きが作成される
【前提知識】最低限、下記を知っているのが望ましいです
・スプレットシートのセルの数え方、配列変数の数え方
・スプレットシートにボタンを配置してクリック時の機能を持たせる
・htmlのタグによる文章の編集方法
※各リンク先をご参照下さい
【スクリプト例】
function myFunction() {
let ssa = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ssa.getActiveSheet();
let range = sheet.getDataRange();
let data = range.getValues();
for(let i = 2; i<data.length; i++){
let recipient = data[i][0]
let subject = data[2][1]
let body = data[2][2]
let options ={
"bcc":data[2][3],
"htmlBody":body,
};
GmailApp.createDraft(recipient,subject,body,options)
};
}
【ざっくり解説】
1行目:関数を宣言する
2行目:アクティブ(開いている)スプレットシートを指定する
3行目:アクティブなスプレットシートのシートを指定する
4行目:指定したシートに入力されいるデータ範囲を指定する
5行目:指定したデータ範囲のデータを取得する
各セルの値をdata[行番号][列番号]という変数に入れる
7行目:登録した宛先メールアドレスの件数だけ、8〜16行目を繰り返す
結果、登録宛先メールアドレスと同じ数のGmail下書きが作成される
8行目:"recipient"という変数に宛先メールアドレスを入れる
今回、宛先メールアドレスはスプレットシートから取得する
9行目:"subject"という変数にメールの件名を入れる
スプレットシートのセルB3の内容が変数"data[2][1]"に入っている
10行目:"body"という変数にメールの本文を入れる
スプレットシートのセルC3の内容が変数"data[2][2]"に入っている
11行目:"options"という変数でメールのその他要素を入れる
今回、BCCに入れるメールアドレス、メール本文がhtml形式である指定を行なっている。
12行目:BCCに入れるメールアドレスがスプレットシートのセルD3にあることを指定している。この内容が変数"data[2][3]"に入っている。
13行目:メール本文がhtml形式であることを指定している
16行目:8行目〜13行目の条件でGmail下書きを作成する
この記事が気に入ったらサポートをしてみませんか?