その他

GASを用いて期間内にメールが未受信の場合に通知する[No90]

スポンサーリンク

使い方

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

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

-その他