Her hafta belirli saatlerde Gmail otomatik yanıt göndermenin bir yolu var mı?


9

Yalnızca Pazartesi-Perşembe günleri arasında izlenen bir Gmail hesabım var. Perşembe öğleden sonra ile Pazartesi sabahı arasında alınan e-postalar için gönderene e-postanın Pazartesi sabahına kadar görülmeyeceğini bildiren ve acil iletişim bilgilerini veren otomatik olarak hazır yanıt gönderecek bir şey ayarlamak istiyorum.

Bunun şu anda doğrudan Gmail'de yapılabileceğini düşünmüyorum. (Tatil yanıtlarının manuel olarak açılıp kapatılması gerekir ve hazır e-posta filtrelerinde tarih / saat seçeneği yoktur.) Yinelenen her hafta için Gmail "ofis dışında" yanıtlarını ayarlayabilir miyim? bunun Gmail'de, en azından bu soru sırasında mümkün olduğunu da önerir.

Bunu gerçekleştirmek için herhangi bir çözüm veya basit kodlama yapmanın bir yolu var mı? Bir yazılım geliştirme geçmişim var, ancak Gmail'i genişletmek için herkesin kullanabileceği (varsa) seçeneklerin farkında değilim.



Boomerang'a bak. Kullanımı daha kolay.
Alex

Açıklamasına göre, gerçekten sorduğum şeyi yapmıyor
PurpleVermont

Yanıtlar:


8

İşte bunu yapan bir Apps Komut Dosyası. Google Drive'da komut dosyası düzenleyicisini açmak için bu komut dosyası çalıştırma bağlantısını tıklayabilirsiniz . Sonra:

  1. Editördeki yer tutucuyu, aşağıda verilen komut dosyasıyla değiştirin.
  2. "Kaynaklar> Bu projenin tetikleyicileri" ne gidin ve her 5 dakikada bir otomatik olarak çalışacak bir tetikleyici ayarlayın.

Betiğin mantığı aşağıda açıklanmaktadır.

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

Komut dosyası yalnızca geçerli yerel gün / saat

  • Cuma, Cumartesi, Pazar (gün 5,6,0 [5,6,0].indexOf(day)) veya
  • Pazartesi sabah 8'den önce (1.Gün, saat <8)
  • Perşembe 17:00 sonrası (4. gün, saat> = 17)

Yaptığı şey, son 5 dakikada ( interval komut dosyasında) alınan tüm mesajları kontrol etmek ve her birine hazır bir metinle yanıt vermek.

İki zaman aralığının eşleşmesi önemlidir: tetikleyicinin ayarlandığı aralık ve kodda ayarlanan aralık. Aksi takdirde, komut dosyası bazı iletileri yanıtlayamaz veya birkaç kez yanıt verir.

Uyarılar

Bunu her 5 dakikada bir yerine her dakika çalıştırmayı deneyebilirsiniz; ancak bunun bir gün (toplam 1 saat çalışma süresi) için komut dosyalarına izin verilen maksimum çalışma süresini aşıp aşmayacağından emin değildim.

Bunun daha sofistike biçimlerini düşündüm: "otomatik cevap" etiketi ekleyerek veya ScriptProperties'te son çalıştırma zamanını saklayarak . Ancak yukarıdakiler işi yapar ve basitlik kazanır.


Ben ifttt.com gibi bir şey önerecekti ama bu çok daha iyi!
barrycarter

Bu cevap için teşekkürler. Onunla oynama şansım olmadı, ama denediğimde işe yaradığını varsayarsak, o zaman cevabı kabul edeceğim.
PurpleVermont

Tetikleyiciler menü öğesinin Düzenle menüsüne taşındığını unutmayın
userSteve

4

User79865 yanıtındaki komut dosyası gerçekten harika! Ancak, çalışma saatlerimin dışında bir test mesajı gönderdiğimde, çalışma saatlerim haline gelene kadar her 5 dakikada bir kendime cevap vermeye devam ettiğimi fark ettim. Bu soruna geçici bir çözüm bulmak için komut dosyasını hafifçe düzenledim, yanıtları gönderen for döngüsüne bir if ifadesi ekledim:

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

Yanıtlayıcı, yanıtı gönderdikten sonra bir iş parçacığını okundu olarak işaretleyecektir ve okunmamış tüm iş parçacıklarını yok saymalıdır. Ben ofis dışındayken hangi e-postaların gönderildiğini takip etmek için, cevaplayıcı da konuyu önemli olarak işaretler, bu yüzden hala gerçek bir cevap göndermeyi biliyorum!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.