Gibt es eine Möglichkeit, jede Woche zu bestimmten Zeiten eine automatische Antwort auf Google Mail zu senden?

9

Ich habe ein Google Mail-Konto, das nur von Montag bis Donnerstag überwacht wird. Ich möchte etwas einrichten, um automatisch eine vordefinierte Antwort auf E-Mails zu senden, die zwischen Donnerstagnachmittag und Montagmorgen eingehen, und den Absender darüber zu informieren, dass die E-Mail erst am Montagmorgen angezeigt wird, und Notfall-Kontaktinformationen anzugeben.

Ich glaube nicht, dass dies derzeit direkt in Google Mail möglich ist. (Urlaubsantworten müssen manuell ein- und ausgeschaltet werden, und Filter für gespeicherte E-Mails enthalten keine Datums- / Uhrzeitoptionen.) Kann ich Google Mail-Abwesenheitsantworten für jede wiederkehrende Woche festlegen? schlägt auch vor, dass dies zumindest zum Zeitpunkt dieser Frage in Google Mail möglich war.

Gibt es eine Umgehungsmöglichkeit oder eine Möglichkeit, eine einfache Codierung durchzuführen, um dies zu erreichen? Ich habe einen Hintergrund in der Softwareentwicklung, weiß jedoch nicht, welche (wenn überhaupt) Optionen der Öffentlichkeit zur Verfügung stehen, um Google Mail zu erweitern.

PurpleVermont
quelle
Schau dir Bumerang an. Einfacher zu bedienen.
Alex
Nach seiner Beschreibung scheint es nicht wirklich das zu tun, wonach ich gefragt habe
PurpleVermont

Antworten:

8

Hier ist ein Apps-Skript, das dies tut. Sie können auf diesen Link zum Starten der Skripterstellung klicken , um den Skripteditor in Google Drive zu öffnen. Dann:

  1. Ersetzen Sie den Platzhalter im Editor durch das unten angegebene Skript.
  2. Gehen Sie zu "Ressourcen> Auslöser dieses Projekts" und legen Sie einen Auslöser fest, der alle 5 Minuten automatisch ausgeführt wird.

Die Logik des Skripts wird unten erläutert.

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.");
    }
  }
}

Das Skript führt nur dann etwas aus, wenn der aktuelle lokale Tag / die aktuelle lokale Uhrzeit angegeben ist

  • Freitag, Samstag, Sonntag (Tage 5,6,0 im Teil [5,6,0].indexOf(day)) oder
  • Montag vor 8 Uhr (Tag 1, Stunde <8)
  • Donnerstag nach 17 Uhr (Tag 4, Stunde> = 17)

Es überprüft alle in den letzten 5 Minuten empfangenen Nachrichten ( interval im Skript) und antwortet auf jede Nachricht mit einem vordefinierten Text.

Es ist wichtig, dass die beiden Zeitintervalle übereinstimmen: das Intervall, in dem der Trigger gesetzt wird, und das im Skript festgelegte. Andernfalls antwortet das Skript entweder nicht auf einige Nachrichten oder antwortet mehrmals.

Bemerkungen

Sie können versuchen, dies jede Minute anstatt alle 5 Minuten auszuführen. Ich war mir jedoch nicht sicher, ob dies die maximale Laufzeit für Skripte für einen Tag überschreiten würde (1 Stunde Gesamtlaufzeit).

Ich habe komplexere Formen davon in Betracht gezogen: durch Hinzufügen eines Labels "Auto-Reply" oder durch Speichern der Zeit der letzten Ausführung in ScriptProperties . Aber das Obige erledigt die Arbeit und gewinnt in der Einfachheit.


quelle
Ich wollte so etwas wie ifttt.com vorschlagen, aber das ist viel besser!
Barrycarter
Danke für diese Antwort. Ich hatte keine Chance, damit zu spielen, aber wenn es funktioniert, wenn ich es versuche, werde ich die Antwort dann akzeptieren.
PurpleVermont
Beachten Sie, dass der Menüpunkt Trigger in das Menü Bearbeiten
verschoben wurde
4

Das Skript in der Antwort von user79865 ist wirklich großartig! Ich bemerkte jedoch, dass ich, wenn ich außerhalb meiner Bürozeiten eine Testnachricht verschickte, alle 5 Minuten auf mich selbst antwortete, bis es wieder meine Bürozeiten wurden. Um dies zu umgehen, habe ich das Skript leicht bearbeitet und der for-Schleife eine if-Anweisung hinzugefügt, die die Antworten sendet:

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();
      }
    }
  }
}

Der Responder markiert nun einen Thread als gelesen, sobald er die Antwort sendet, und sollte alle ungelesenen Threads ignorieren. Um zu verfolgen, welche E-Mails gesendet wurden, während ich nicht im Büro bin, markiert der Antwortende den Thread auch als wichtig, sodass ich immer noch weiß, dass ich eine echte Antwort senden muss!

Darcey
quelle