回答が遅くなりました。
通知目的としては不定期で書き込まれる報告があり、毎日更新があるかチェックする手間を省きたいと 思っています。二度手間になるため書き込む側はメールやコメントなどで更新を報告する義務はありません。
報告の更新頻度はだいたい週に1,2回程度です。
基本的にはオープン≒編集です。
という事なので、以下の単純なスクリプトはいかがでしょうか?
function onEdit(e) {
GmailApp.sendEmail("me@gmail.com", "題名開かれたよ", "本文ファイルが開かれましたよ。");
}
ファイルのオープン時にme@gmail.com宛にメッセージが届きます。
onEdit(e)
という関数名は、シンプリトリガーとして、
自動でオープン時に起動されます。
GmailApp.sendEmail("送信先アドレス","題名","メール本文")
で、メールが送信されます。
勝手な想像で、
ファイルが開かれたことを30分後に知らせられたら、
よりやりたいことに近いのではなかろうかと予想して、
以下のようなコードも提案してみます。
function onEdit(e) {
DeleteTrigger("sendEmail");
let nextTime = new Date();
nextTime.setMinutes(nextTime.getMinutes() + 30);
console.log(nextTime);
ScriptApp.newTrigger("sendEmail").timeBased().at(nextTime).create();
}
function sendEmail() {
GmailApp.sendEmail("akira.yonaha@gmail.com", "開かれたよ。", "ファイルが開かれましたよ。");
}
function DeleteTrigger(functionName) {
const triggers = ScriptApp.getProjectTriggers();
triggers.filter(function (trigger) {
return trigger.getHandlerFunction() == functionName;
}).forEach(function (trigger) {
ScriptApp.deleteTrigger(trigger);
});
return;
}
メールを送信する関数を、
ファイルが開かれた30分後に起動する内容でございます。
スクリプトの流れとして、
ファイルが開かれたら、
・以前に作成したトリガーを消す事
・30分後に起動させるトリガーを作成する。
一旦終了。
30分後、作成されたトリガーが起動
・メールを送信する。
終了
となっております。
ファイルが30分以内に何回か開かれたとしても、
最後のファイルオープンから30分後にしか、
メールが送信されないはずですが、
そこらへんは、えいやでやって、まぁ良いやで済ませています。
私からの提案は以上となります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/01/27 10:55 編集
2021/01/27 12:44 編集