Witam. Mam problem z modyfikacją kodu.
Mam skrypt który automatycznie odpowiada na maile w gmailu filtrując je po tytule oraz nadawcy. Chciałbym wprowadzić dwie modyfikacje. Pierwsza z nich polega na dodaniu cytatu starej wiadomości (odpisuje bez załączania pierwotnego maila), oraz druga za pomocą której mógłbym dodać kolejne kryterium i odpisywać na maile od innych nadawców z innymi filtrami w tytule. Czy znajdzie się tutaj dobra dusza która pomoże to zrobić?
const g = {
subjectFilter: 'pytanie o przedmiot',
from: 'powiadomienia@allegro.pl',
labelName: 'Auto-replied',
textBody: `Witam. Dziękuję za zainteresowanie moją ofertą, odpowiem najszybciej, jak to możliwe. Moja firma jest czynna od poniedziałku do piątku, od 9:00 do 17:00 oraz w sobotę od 9:00 do 12:00. W tym czasie, proszę spodziewać się odpowiedzi. Pozdrawiam, Tomek`,
htmlBody: `<p>Witam. Dziękuję za zainteresowanie moją ofertą, odpowiem najszybciej, jak to możliwe. Moja firma jest czynna od poniedziałku do piątku, od 9:00 do 17:00 oraz w sobotę od 9:00 do 12:00. W tym czasie, proszę spodziewać się odpowiedzi. Pozdrawiam, Tomek</p>`,
maxThreads: 100,
startingThread: 0,
replyCount: 0,
};
function checkAndReply() {
init_();
while (true) {
const threads = GmailApp.search(g.query, g.startingThread, g.maxThreads);
g.startingThread += g.maxThreads;
threads.forEach((thread) => {
thread.reply(g.textBody, { htmlBody: g.htmlBody });
g.label.addToThread(thread);
g.replyCount++;
});
if (threads.length < g.maxThreads) {
break;
}
}
const text =
g.replyCount == 0
? 'No new emails found.'
: g.replyCount == 1
? 'Replied to one new email.'
: `Replied to ${g.replyCount} new emails.`;
console.log(text);
}
function init_() {
const labels = GmailApp.getUserLabels().map((l) => l.getName());
if (!labels.includes(g.labelName)) {
GmailApp.createLabel(g.labelName);
}
g.label = GmailApp.getUserLabelByName(g.labelName);
const queryFilter = {
subject: g.subjectFilter,
from: g.from,
'-label': g.labelName,
};
g.query = Object.entries(queryFilter)
.map((e) => e.join(':'))
.join(' ');
const triggers = ScriptApp.getProjectTriggers();
if (triggers.length == 0) {
ScriptApp.newTrigger('checkAndReply').timeBased().everyMinutes(1).create();
}
}