はじめに
プログラム言語を用いて、メールの一括送信がしたい。
pythonなどの言語を用いれば、自動送信は可能だが「自身のパソコンをシャットダウン」した状態で、メールを送信するためには自身のパソコン上で実行するのではなくGoogleAppsScript(以降GAS)というサーバーレスで実行する言語を選んだ。
プログラミング言語を初めてみたが、自身で実行環境を作るのが難しいという方向けに記事を書いた。
主な使い方はメールを一括で送りたいが、メールを送る人によって文面を変更したい場合に有効である。
目次
GoogleAppsScriptとは?
Googleが提供しているサーバーレスで各種Googleサービスをサーバー上から各種Googleサービスを実行できるスクリプトのことである。
”GoogleAppsScript”
https://script.google.com/home
にアクセスして、コードを書くことができる。
プログラミング言語は開発環境を作ることに一定以上のスキルが必要であるが、GoogleAppsScriptは開発環境のこうちくが不要のため上記アドレスにアクセスするだけで誰でもコードを書き始めることができる。
GoogleAppsScriptでメールを送る
/* 各データを準備 */
var strTo= 自分のメールアドレス"; //To
var strName="VPN利用者様"; //苗字
var strFrom="admin@gmail.com"; //From
var strSender="admin@gmail.com"; //差出人
/* メール本文を準備 */
var strSubject = "【要回答】メールタイトル(回答期限:2019/4/30)【△△△より】";
var strBody = "メール本文";
/* メールを送信 */
GmailApp.sendEmail(
strTo,
strSubject,
strBody,
{
from: strFrom,
name: strSender
}
); //MailAppではfromが設定できないとのこと
GoogleAppsScriptでメールを送る
GoogleAppsScriptでスプレッドシートから送信先を取得しつつメールを送るには、
を組み合わせることで実装した。
上記コードを貼り付けたら、
にアクセスをして、実行ボタン「▶」を押す。
そうするとGoogleAppsScript経由でメールが送られる。
//スプレッドシートのkeyを指定して取得
var spreadsheet = SpreadsheetApp.openById('1SRQIPPzVV2vwTeSsIpQrMt4DSuiO1P3eqGUcjrHc');
Logger.log(spreadsheet+"の読み込みを開始しました")//Spreadsheet
//これからGoogleAppsScriptでloopを開始します
//Number(i)が整数化しています
//iの変数がスプレッドシートの何行目までを読み込むかを設定します
for(var i = 447 ; i <= 596; i++){
//ログに出力(整数ループができているか?)
Logger.log(Math.round(i));
Logger.log(Number(i));
//セル(A,i)を表示します。
var range = spreadsheet.getRange("A"+Number(i));
//4. 値を取得する
var value = range.getValue();
//セル(B,i)を表示します。
var range2 = spreadsheet.getRange("B"+Number(i));
//4. 値を取得する
var value2 = range2.getValue();
//セル(B,i)を表示します。
var range3 = spreadsheet.getRange("C"+Number(i));
//4. 値を取得する
var value3 = range3.getValue();
Logger.log(value);
Logger.log(value2);
Logger.log(value3);
Logger.log(value+"@gmail.comにメールを送ります(本番アドレスに送信します)");
GoogleAppsScriptには実行上限が存在するので、大規模アプリを開発する人は要確認
”【GAS】Google Apps Scriptの制限・上限まとめ【実行回数・時間・容量】”
https://monoblog.jp/archives/2349