Czy mogę ustawić w Gmailu odpowiedzi „poza biurem” na każdy kolejny cykl?
11
Pracuję tylko od poniedziałku do środy. Chciałbym to skonfigurować, aby klienci otrzymywali mi e-maile w te dni każdego tygodnia, otrzymując przyjazne przypomnienie. W jaki sposób mogę to zrobić? Wygląda na to, że musiałbym to robić ręcznie co tydzień.
Dostosowałem odpowiedź na podobne pytanie do twojej sytuacji. Ten skrypt aplikacji odpowie, jeśli bieżący dzień to czwartek (4), piątek (5), sobota (6) lub niedziela (0). Zestaw dni można dostosować, jak pokazano poniżej.
function autoReply() {
var interval = 5; // if the script runs every 5 minutes; change otherwise
var daysOff = [4,5,6,0]; // 1=Mo, 2=Tu, 3=We, 4=Th, 5=Fr, 6=Sa, 0=Su
var message = "This is my day off.";
var date = new Date();
var day = date.getDay();
if (daysOff.indexOf(day) > -1) {
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(message);
}
}
}
Myślę, że masz rację; Widzę tylko sposób na dodanie daty początkowej i opcjonalnej daty końcowej. Nie będziesz w stanie zautomatyzować tego samego Gmaila. Potrzebujesz zewnętrznego narzędzia, zakładając, że ktoś coś takiego stworzył. Ktoś zręczny w Google Apps Script może jednak być w stanie coś stworzyć.
Jeśli chodzi o to, co jest warte, Outlook też nie pozwala ci robić tego rodzaju rzeczy.
W najlepszym przypadku za pomocą Gmaila możesz użyć automatycznej odpowiedzi na wakacje, aby wysłać wiadomość do dowolnej osoby w dowolnym dniu. Jest całkiem sprytny, ponieważ nie wysyła wiadomości wiele razy, jeśli otrzymasz kilka wiadomości od jednej osoby.
Napisałem zaktualizowaną wersję w porównaniu do user79865, dodaję etykietę dla odpowiedzi na e-maila zamiast zużywać czas, będzie bardziej dokładny.
function autoReply() {
var scheduled_date = [
'2016-12-19', '2016-12-20',
];
var auto_reply = "I am out of office. Your email will not seen until Monday morning.";
var now = new Date();
var today = now.toISOString().slice(0, 10); // today format: '2017-01-01'
var label = GmailApp.getUserLabelByName('auto-replyed') || GmailApp.createLabel('auto-replyed');
// today is the scheduled date
if (scheduled_date.indexOf(today) >= 0) {
// get all email inbox, unread, without label auto-replyed
var threads = GmailApp.search('is:unread is:inbox -{label:auto-replyed}');
for (var i = 0; i < threads.length; i++) {
var thread = threads[i]
// reply the email and add auto-replyed label
thread.reply(auto_reply);
thread.addLabel(label);
}
}
}
Połączyłem 2 skrypty, aby uzyskać wersję z etykietami linjunhalida, ale mogłem wybrać dzień zamiast wprowadzać daty, jak w skrypcie user79865:
function autoReply() {
var scheduled_date = [
'2019-09-20', '2019-09-27',
];
var auto_reply = "I am out of office today. I'll get back to you as soon as possible next week.";
var now = new Date();
var today = now.toISOString().slice(0, 10); // today format: '2017-01-01'
var label = GmailApp.getUserLabelByName('auto-replyed') || GmailApp.createLabel('auto-replyed');
// today is the scheduled date
if (scheduled_date.indexOf(today) >= 0) {
// get all email inbox, unread, without label auto-replyed
var threads = GmailApp.search('is:unread is:inbox -{label:auto-replyed}');
for (var i = 0; i < threads.length; i++) {
var thread = threads[i]
// reply the email and add auto-replyed label
thread.reply(auto_reply);
thread.addLabel(label);
}
}
}
Po dłuższym użyciu jest kilka innych poprawek i ulepszeń, na które warto spojrzeć:
function autoReply() {
var interval = 5; // if the script runs every 5 minutes; change otherwise
var daysOff = [1,5,6,0]; // 1=Mo, 2=Tu, 3=We, 4=Th, 5=Fr, 6=Sa, 0=Su
var date = new Date();
var day = date.getDay();
var label = GmailApp.getUserLabelByName("autoresponded");
if (daysOff.indexOf(day) > -1) {
var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;
var threads = GmailApp.search('is:inbox !label:autoresponded after:' + timeFrom);
for (var i = 0; i < threads.length; i++) {
var message = threads[i].getMessages()[0];
if (message.getFrom().indexOf("myemail@gmail.com") < 0 && message.getFrom().indexOf("no-repl") < 0 && message.getFrom().indexOf("bounce") < 0 && message.getFrom().indexOf("spam") < 0) {
threads[i].reply("", {
htmlBody: "<p>Thank you for your message. I am not in the office today. If you have urgent questions you can email office@example.com. If you have other urgent enquiries you can call the office on 1800 999 002.</p><p>Best regards,<br>Name</p>"
});
label.addToThread(threads[i]);
}
}
}
}
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.