我正在寻找模式示例,其中在GoogleAppsForBusiness域中运行的恶魔脚本可以解析传入的电子邮件。某些消息将包含对不同GAScript的调用,例如,可以更改特定文档的ACL设置。通过电子邮件触发Google Apps脚本
我假设别人已经实现了这种模式,但不知道我怎么去找到例子。
THX
我正在寻找模式示例,其中在GoogleAppsForBusiness域中运行的恶魔脚本可以解析传入的电子邮件。某些消息将包含对不同GAScript的调用,例如,可以更改特定文档的ACL设置。通过电子邮件触发Google Apps脚本
我假设别人已经实现了这种模式,但不知道我怎么去找到例子。
THX
您可以在Google Apps脚本user guide和tutorials脚本示例。您也可以搜索有关forum的相关讨论。但我认为没有一个能够完全符合你的要求,所有的代码都在那里,但不是一个脚本。
有人可能会写这样的脚本,并且从未发布它。由于做起来有些简单,每个人的使用都不一样。例如,你打算如何标记你的电子邮件(你已经阅读,执行过的那些)?使用gmail过滤器可以很好地帮助你,将“命令”电子邮件放在标签上,而脚本只是删除标签(可能会设置另一个标签)。要点是,看它有多大差异。
另外,我认为如果您可以将所有功能保留在同一个脚本项目中,则会更容易。可能只是在不同的文件。因为调用不同的脚本更复杂。
反正,他就是我想要启动它:
//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:我还没有测试此代码
您可以创建一个谷歌的应用程序,将被发送到接收到的电子邮件被触发该应用的特殊地址。该邮件将转换为您的应用收到的HTTP POST。
更多细节在这里: https://developers.google.com/appengine/docs/python/mail/receivingmail
我没有带这个还没试过自己,但在未来数日内将这样做。
问题是询问Google Apps脚本中的解决方案,而不是AppEngine。 –
啊,这是由于有太多不同产品的名称相似,重叠和混淆不清......为尽力提供帮助而表示歉意。 顺便说一句,我自己的实现是成功的。 –
@EdRandall我知道这已经有一段时间了,但你介意分享你实现的基本逻辑吗?我发现自己需要类似的东西,不得不通过电子邮件触发一个python脚本(python脚本现在驻留在EC2实例上,但我可以移动到AppENgine,这是同样的事情吗?)谢谢 – newyuppie
有两种方法。首先,您可以使用Google pub/sub并处理AppScrit端点中的通知。第二种方法是在您的AppScript代码an example here中使用googleapis npm包。希望能帮助到你。
这些步骤如下:
虽然这个链接可能回答这个问题,但最好在这里包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/16436033) –
谢谢,我会纠正我的答案 –
现在有办法在收到电子邮件时触发脚本(而不是设置一个计时器)吗? – Trevor
@threed不是我所知的 –
那么那就没用了。没有像GMail上的procmail? – Michael