(まもなく記事公開終了します)GAS Sample_スプレッドシート上で宛先を選択しメール送信(その2)
※新しい記事にリライトしました。本記事は間もなく公開終了いたします。
今後はこちらの記事をご参照ください。
前回はスプレッドシート上で宛先を選択しメール送信するスクリプトを紹介しました。
今回はその応用として、Cc/Bccも選択できるように構築します。
スクリプトはこちら。
「メール送信」「下書き作成」のメニューも実装しています。
function sendMail(){
//スプレッドシート、および各シートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = ss.getSheetByName('list')
const mailSheet = ss.getSheetByName('mail')
//mailSheetのセルB1-B2から件名、本文を取得
const subject = mailSheet.getRange(1, 2).getValue();
const body = mailSheet.getRange(2, 2).getValue();
//listSheetの最終行を取得、メアドを格納する変数recipient,cc,bccを準備
const lastRow = listSheet.getLastRow();
let recipient = '';
let cc = '';
let bcc = '';
//listSheetの列A-Cにチェックが入っていたらメアドを追加
for(let i = 2 ;i <= lastRow ; i++){
const checkTo = listSheet.getRange(i, 1).getValue();
const checkCc = listSheet.getRange(i, 2).getValue();
const checkBcc = listSheet.getRange(i, 3).getValue();
const address = listSheet.getRange(i, 5).getValue();
if(checkTo == true){
recipient += address + ',';
}
if(checkCc == true){
cc += address + ',';
}
if(checkBcc == true){
bcc += address + ',';
}
}
// メール送信
GmailApp.sendEmail(recipient, subject, body, {cc:cc, bcc:bcc});
}
function createDraft(){
//スプレッドシート、および各シートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = ss.getSheetByName('list')
const mailSheet = ss.getSheetByName('mail')
//mailSheetのセルB1-B2から件名、本文を取得
const subject = mailSheet.getRange(1, 2).getValue();
const body = mailSheet.getRange(2, 2).getValue();
//listSheetの最終行を取得、メアドを格納する変数recipient,cc,bccを準備
const lastRow = listSheet.getLastRow();
let recipient = '';
let cc = '';
let bcc = '';
//listSheetの列A-Cにチェックが入っていたらメアドを追加
for(let i = 2 ;i <= lastRow ; i++){
const checkTo = listSheet.getRange(i, 1).getValue();
const checkCc = listSheet.getRange(i, 2).getValue();
const checkBcc = listSheet.getRange(i, 3).getValue();
const address = listSheet.getRange(i, 5).getValue();
if(checkTo == true){
recipient += address + ',';
}
if(checkCc == true){
cc += address + ',';
}
if(checkBcc == true){
bcc += address + ',';
}
}
//下書き
GmailApp.createDraft(recipient, subject, body, {cc:cc, bcc:bcc});
}
function onOpen(){
SpreadsheetApp.getUi()
.createMenu('スクリプト')
.addItem('メール送信', 'sendMail')
.addItem('下書き作成', 'createDraft')
.addToUi();
}
メール件名/本文は変わらず、To/Cc/Bccが都度変動するような場合に便利です。
※続きの記事を書きました
この記事が気に入ったらサポートをしてみませんか?