Można znaleźć przykłady skrypt w Apps Script user guide i tutorials. Możesz także wyszukać pokrewne dyskusje na temat forum. Ale nie sądzę, że jest taki, który pasuje do ciebie dokładnie, cały kod jest na pewno, ale nie na jednym skrypcie.
Możliwe, że ktoś napisał taki scenariusz i nigdy go nie opublikował. Ponieważ jest to dość proste, a korzystanie z niego jest inne. Na przykład, jak planujesz oznaczać swoje e-maile (te, które już przeczytałeś, wykonałeś itp.)? Dobrym rozwiązaniem może być skorzystanie z filtra do Gmaila, od razu umieszczając e-maile "polecające" na etykiecie, a skrypt po prostu usuwa etykietę (i ewentualnie ustawia inną). Chodzi o to, zobacz, jak może się bardzo różnić.
Sądzę też, że łatwiej będzie zachować wszystkie funkcje w tym samym projekcie skryptu. Prawdopodobnie tylko na różnych plikach. Ponieważ wywoływanie różnych skryptów jest o wiele bardziej skomplikowane.
W każdym razie, to jak bym go uruchomić:
//set a time-driven trigger to run this function on the desired frequency
function monitorEmails() {
var label = GmailApp.getUserLabelByName('command');
var doneLabel = GmailApp.getUserLabelByName('executed');
var cmds = label.getThreads();
var max = Math.min(cmds.length,5);
for(var i = 0; i < max; ++i) {
var email = cmds[i].getMessages()[0];
var functionName = email.getBody();
//you may need to do extra parsing here, depending on your usage
var ret = undefined;
try {
ret = this[functionName]();
} catch(err) {
ret = err;
}
//replying the function return value to the email
//this may make sense or not
if(ret !== undefined)
email.reply(ret);
cmds[i].removeLabel(label).addLabel(doneLabel);
}
}
PS: I nie zostało przetestowane ten kod
Czy istnieje sposób wywołania skryptu po otrzymaniu wiadomości e-mail (zamiast ustawiania licznika czasu)? – Trevor
@threed Nie żebym wiedział o –
Cóż, to po prostu bezużyteczne. Nic takiego jak procmail w GMailu? – Michael