Vous pouvez trouver des exemples de script dans l'Apps Script user guide et tutorials. Vous pouvez également rechercher des discussions connexes sur le forum. Mais je ne pense pas qu'il y en ait un qui vous corresponde exactement, tout le code est là pour sûr, mais pas sur un seul script.
Il est possible que quelqu'un ait écrit un tel script et ne l'ait jamais publié. Comme c'est assez simple à faire et que l'usage de chacun est différent. Par exemple, comment envisagez-vous de marquer vos emails (ceux que vous avez déjà lus, exécutés, etc.)? Cela peut être sympa d'utiliser un filtre Gmail pour vous aider, en plaçant tout de suite les e-mails "command" dans une étiquette, et le script supprime simplement l'étiquette (et peut-être en définit une autre). Le point est, voir comment il peut différer beaucoup.
Aussi, je pense que c'est plus facile si vous pouvez garder toutes les fonctions dans le même projet de script. Peut-être juste sur des fichiers différents. Comme l'appel de différents scripts est beaucoup plus compliqué.
Quoi qu'il en soit, il est comment je le démarre:
//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: Je ne l'ai pas testé ce code
Y a-t-il maintenant moyen de déclencher le script lors de la réception d'un e-mail (au lieu de simplement définir un temporisateur)? – Trevor
@threed Pas que je sache de –
Eh bien c'est juste inutile alors. Rien de tel que procmail sur GMail? – Michael