##moment.jsが便利なので、入れます。
リソース→ライブラリ
ライブラリを追加:MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48
バージョンは、9を選択して、保存。
##今日やる内容(自分のGASにコピペしてください。)
mail.js
var DEBUG_FLG = 0; // 0のときメール送信
function sendEmail(){
var tomail = "";
var mailTitle = "";
var mailMsg = "";
var opt = new Object();
opt.cc = "";
opt.bcc = "";
// opt.from = "g181tg2061@dhw.ac.jp";
opt.name = "【メルマガ】"; // 差出人
// スプレットシートからデータを引き出す
// 1. 今開いている(紐付いている)スプレッドシートを定義
var magaginSheet = SpreadsheetApp.getActiveSpreadsheet();
// 2. mail_listの名前が書かれているシートを呼び出す
var maillistSheet = magaginSheet.getSheetByName("mail_list");
// 3. 最終列の列番号を取得
var numColumn = maillistSheet.getLastColumn();
// 4. 最終行の行番号を取得
var numRow = maillistSheet.getLastRow()-2;
Logger.log(numRow); // コントロール(macはコマンド) + R して、上のバーの表示→ログが見れる。
// 5. 範囲を指定(上、左、右、下)
var dataRange = maillistSheet.getRange(3, 1, numRow, numColumn);
// 6. 値を取得
var data = dataRange.getValues();
for(i in data){
var rowData = data[i];
var organization = data[i][0]; // 法人名
var mainAddress = data[i][1]; // 事務所(主)
var subAddress = data[i][2]; // 事務所(従)
var ceoName = rowData[3]; // 代表者氏名
var contactDay = Moment.moment(rowData[4]).format('YYYY/MM/DD'); // コンタクト日
var sendMailDay = Moment.moment(rowData[5]).format('YYYY/MM/DD'); // 次回メール送信日
var field = rowData[6]; // 活動分野、メモ
var callMeMaybe = rowData[7]; // 電話番号
var emailAddress = rowData[8]; // メールアドレス
var partnerName = rowData[9]; // 担当者氏名
var contactForm = rowData[10]; // 連絡フォーム
var sentTimes = rowData[11]; // 送信回数
var sentProval = rowData[12]; // 自動送信許可
var sentTime = Moment.moment().format('YYYY/MM/DD'); // 送信時間
var trackingID = rowData[14]; // トラッキングID
var format = "いつもありがとうございます!<br>今後とも何卒よろしくお願いいたします。";
mailTitle = "【新年のご挨拶】こんばんは"; // メールの件名
mailMsg = "<b>今年はプログラミングをはじめました。</b>"; // メールの本文
opt.htmlBody = mailMsg; // optに本文を格納
if(0 == DEBUG_FLG && "許可" == sentProval && sendMailDay == sentTime){
// メールを送信
// 参考URL: https://developers.google.com/apps-script/reference/gmail/gmail-app#sendEmail(String,String,String,Object)
MailApp.sendEmail("nj.takayuki@gmail.com", mailTitle, "", opt); // (宛先, 件名, 本文, オプション)
// slackにメッセージ送信
var slack_url = "https://hooks.slack.com/services/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";
//var slack_url = "https://hooks.slack.com/services/**********************************************"; // ******の部分に自分のKEYを入力
var slack_opt = {
"method" : "POST",
"headers": {"Content-type": "application/json"},
"payload" : '{"text":"'
+ "自動メールを"+partnerName+"送りました。"
+ '"}'
};
UrlFetchApp.fetch(slack_url, slack_opt);
// 送信回数と送信時間の更新
rowData[11] = sentTimes + 1;
rowData[13] = sentTime;
} else {
Logger.log(emailAddress);
Logger.log(mailTitle);
Logger.log(opt);
}
}
// スプレッドシートのデータを更新(送信回数と送信時間)
dataRange.setValues(data);
}
トリガー設定
### イベントのソースを選択:時間主導型 ### 時間ベースのトリガーのタイプを選択:日付ベースのタイマー ### 時刻を選択:好きな時間を選択以上です。来週(2/5)もデジハリ4Fで会いましょう!