スポンサーリンク
使い方
sendNothingMail関数の呼び出しでsrchTimeに設定した間隔を考慮し、AppScriptでトリガーを設定する。
例えば、13時55分~14時00分の間に特定のメールが受信できていない場合に、メールで通知するように設定したければ、srchTimeを5分前(= 300)に設定し、トリガーを14時00分に設定する。
また、日本時間で正確に動作するように、AppScriptの「プロジェクトの設定」で【「appsscript.json」マニフェスト ファイルをエディタで表示する】をONにして「エディタ」に表示される「appsscript.json」を確認し、「"timeZone": "Asia/Tokyo"」となっていることを確認しておきましょう!
ソースコード
const mainPattern01 = () => {
sendNothingMail(検索Fromのメールアドレス,検索Toのメールアドレス, '検索の件名01',300, 送信先のメールアドレス, '件名01', `本文01`);
}
const mainPattern02 = () => {
sendNothingMail(検索Fromのメールアドレス,検索Toのメールアドレス, '検索の件名02',300, 送信先のメールアドレス, '件名02', `本文02`);
}
const sendNothingMail = (srchFrom, srchTo, srchSubject, srchTime, emailTo, emailSubject, emailBody) => {
//受信日時指定
const date = new Date();//現在時刻を取得
const unixTime = date.getTime();//UNIX TIMEに変換
const now = Math.floor(unixTime / 1000); //ミリ秒を秒に変換
const term = Math.abs(now - srchTime); //60の場合、現在時刻から1分(60秒)前
const srchTerm = term.toString(); //文字列に変換
let srchCondition = '';
srchCondition = srchCondition + 'from:' + srchFrom;
srchCondition = srchCondition + '\u0020';
srchCondition = srchCondition + 'to:' + srchTo;
srchCondition = srchCondition + '\u0020';
srchCondition = srchCondition + 'subject:' + srchSubject;
srchCondition = srchCondition + '\u0020';
srchCondition = srchCondition + 'after:' + srchTerm;
const myThreads = GmailApp.search(srchCondition, 0, 10); //条件にマッチしたスレッドを取得
const myMessages = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する
if (myMessages.length === 0) {
const recipient = emailTo;
const subject = emailSubject;
const body = emailBody;
const options = {};
//GmailApp.sendEmail(recipient, subject, body, options);
console.log(["〇True", srchFrom, srchTo, srchSubject, srchTime, recipient, subject, body, options].join("|"));
} else {
console.log(["×False", srchFrom, srchTo, srchSubject, srchTime, recipient, subject, body, options].join("|"));
}
}
参考サイト
初心者でも簡単!Google Apps ScriptでGmailを操作してメールを送る方法
GAS:gmail 30分以内に受信した未読メールの内容をメール送信する
Google Apps ScriptでGmailの情報を取得する際に、受信日時を細かく指定する方法。
Google Apps ScriptでGmailの特定のメールを受信したらLINEと連携して通知する
Google Apps Script で 平日の 特定時間帯のみ 1時間おきに関数を実行する - MoreBeerMorePower
最後までお付き合いいただきありがとうございます!
この情報が誰かの役にたてれば幸いです。