毎週特定の時間にGmailの自動応答を送信する方法はありますか?


9

月曜から木曜までしか監視されていないGmailアカウントを持っています。木曜日の午後から月曜日の朝までに受信したメールに対して、返信が月曜日の朝まで見られないことを通知し、緊急連絡先情報を提供する返信定型文を自動的に送信するように設定します。

現時点では、これをGmailで直接行うことはできないと思います。(休暇の返信は手動でオンとオフを切り替える必要があり、メールの缶詰のフィルターには日付/時刻のオプションが含まれていません。)Gmailの "不在"返信を毎週繰り返すように設定できますか?また、これは、少なくともその質問の時点では、Gmailで可能だったことを示唆しています。

これを達成するための簡単なコーディングを行う回避策または方法はありますか? ソフトウェア開発のバックグラウンドがありますが、Gmailを拡張するために一般に公開されているオプション(ある場合)がわかりません。



ブーメランを見てください。使いやすい。
アレックス

説明のように、私が質問したことを実際には実行していないようです
PurpleVermont

回答:


8

これを行うApps Scriptは次のとおりです。このスクリプト開始リンクをクリックして、Googleドライブでスクリプトエディターを開くことができます。次に:

  1. エディターのプレースホルダーを次のスクリプトに置き換えます。
  2. [リソース]> [このプロジェクトのトリガー]に移動し、トリガーを設定して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に保存することで、より洗練された形式を検討しました。しかし、上記は仕事を成し遂げ、単純さで勝ちます。


私はifttt.comのようなものを提案するつもりでしたが、これははるかに優れています!
バリーカーター2016

この回答をありがとう。私はそれを試す機会がありませんでしたが、それを試してみてそれがうまくいくと仮定して、私はその答えを受け入れます。
PurpleVermont 2016

Triggersメニュー項目がEditメニューに移動したことに注意してください
userSteve

4

user79865の答えのスクリプトは本当に素晴らしいです!ただし、営業時間外にテストメッセージを送信すると、再び営業時間になるまで5分ごとに返信し続けていました。これを回避するために、スクリプトを少し編集して、応答を送信するforループにifステートメントを追加しました。

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++) {
      if (threads[i].isUnread()){
      threads[i].reply("I am out of office. Your email will not seen until Monday morning.");
      threads[i].markRead();
      threads[i].markImportant();
      }
    }
  }
}

レスポンダは、応答を送信するとスレッドを既読としてマークし、未読のスレッドはすべて無視する必要があります。不在時にどのメールが送信されたかを追跡するために、レスポンダもスレッドを重要としてマークしているので、実際の返信を送信することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.