![見出し画像](https://assets.st-note.com/production/uploads/images/130167727/rectangle_large_type_2_f61567d270b901e65f1dabdda4b59aa1.jpeg?width=1200)
スプレッドシートからメール下書き作成(その6)[GAS]下書きではなく送信する
前回までの記事は「メール下書き」を作成するスクリプトでした。
スクリプトのちょっとした誤りによって、意図しないメールが送信されないよう基本的には「下書き」ベースが望ましいと考えます。
ただ、Google Apps Scriptでは「メール下書き」のみならず「メール送信」もプログラミングで自動実行できます。
用途・状況に応じて使い分けるのが良いでしょう。
「メール送信」スクリプトの場合、誤送信を避けるために「スクリプト実行時、ダイアログを表示して再確認する」という方法も一つの手です。
(前回記事の「スクリプト実行ボタン」でも触れた手法と同じものです。)
このようなスクリプトを書きました。
function createDraftMail() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const recipient = sheet.getRange(1, 2).getValue();
const ccRecipient = sheet.getRange(2, 2).getValue();
const bccRecipient = sheet.getRange(3, 2).getValue();
const subject = sheet.getRange(4, 2).getValue();
const body = sheet.getRange(5, 2).getValue();
const options = {
cc: ccRecipient,
bcc: bccRecipient
};
GmailApp.createDraft(recipient, subject, body, options);
}
function sendMail() {
if (Browser.msgBox('スクリプトを実行しますか?', Browser.Buttons.OK_CANCEL) === 'cancel') {
return;
}
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const recipient = sheet.getRange(1, 2).getValue();
const ccRecipient = sheet.getRange(2, 2).getValue();
const bccRecipient = sheet.getRange(3, 2).getValue();
const subject = sheet.getRange(4, 2).getValue();
const body = sheet.getRange(5, 2).getValue();
const options = {
cc: ccRecipient,
bcc: bccRecipient
};
GmailApp.sendEmail(recipient, subject, body, options);
}
function onOpen() {
const ui = SpreadsheetApp.getUi();
const menu = ui.createMenu('スクリプト');
menu.addItem('メール下書き', 'createDraftMail');
menu.addItem('メール送信', 'sendMail');
menu.addToUi();
}
上記のスクリプトでは、スプレッドシートのメニューに「メール下書き」と「メール送信」の2つのメニューが追加され、それぞれのスクリプトが実行できます。
![](https://assets.st-note.com/img/1707342144702-XtSQwDCy4g.png?width=1200)
「メール送信」スクリプトを実行すると下記の「誤送信防止」ダイアログが表示されます。
「OK」押下の場合はその後に書かれた「メール送信スクリプト」が実行されます。
「キャンセル」を押下した場合はそこでスクリプトは終了し、メールは送信されません。
![](https://assets.st-note.com/img/1707342160533-KBBApRJhAF.png?width=1200)
本記事で「スプレッドシートからメール下書き作成」シリーズはいったん終了します。
プログラミングの便利さに触れ、Google Apps Scriptに興味を持って頂けますと幸いです。
【シリーズ記事まとめ】
スプレッドシートからメール下書き作成(その1)初めてのGAS
スプレッドシートからメール下書き作成(その2)GASを分解する
スプレッドシートからメール下書き作成(その3)Cc/Bcc追加
スプレッドシートからメール下書き作成(その4)シート複製
スプレッドシートからメール下書き作成(その5)スクリプトの実行方法に関して
スプレッドシートからメール下書き作成(その6)下書きではなく送信する(本記事)