これを行うApps Scriptは次のとおりです。このスクリプト開始リンクをクリックして、Googleドライブでスクリプトエディターを開くことができます。次に:
- エディターのプレースホルダーを次のスクリプトに置き換えます。
- [リソース]> [このプロジェクトのトリガー]に移動し、トリガーを設定して5分ごとに自動返信を実行します。
スクリプトのロジックを以下に説明します。
function autoReply() {
var interval = 5; // if the script runs every 5 minutes; change otherwise
var date = new Date();
var day = date.getDay();
var hour = date.getHours();
if ([5,6,0].indexOf(day) > -1 || (day == 1 && hour < 8) || (day == 4 && hour >= 17)) {
var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;
var threads = GmailApp.search('is:inbox after:' + timeFrom);
for (var i = 0; i < threads.length; i++) {
threads[i].reply("I am out of office. Your email will not seen until Monday morning.");
}
}
}
スクリプトは、現在のローカルの日付/時刻が
- 金曜、土曜、日曜(パートの5、6、0日
[5,6,0].indexOf(day)
)、または
- 月曜日の午前8時(日1、時間<8)
- 木曜日の午後5時(4日目、時間> = 17)
これは、過去5分間(interval
スクリプト内)で受信したすべてのメッセージをチェックし、それぞれに返信定型文で返信することです。
2つの時間間隔が一致していることが重要です。トリガーが設定されている間隔と、スクリプトで設定されている間隔です。それ以外の場合、スクリプトは一部のメッセージへの応答に失敗するか、数回応答します。
備考
5分ごとではなく、1分ごとに実行することもできます。しかし、これが1日にスクリプトに許可されている最大実行時間(合計実行時間の1時間)を超えるかどうかはわかりませんでした。
「自動返信」というラベルを追加するか、最後に実行した時刻をScriptPropertiesに保存することで、より洗練された形式を検討しました。しかし、上記は仕事を成し遂げ、単純さで勝ちます。