我正在寻找在 GoogleAppsForBusiness 域中运行的恶魔脚本可以解析传入电子邮件的模式示例。一些消息将包含对不同 GAScript 的调用,例如,可以更改特定文档的 ACL 设置。
我假设其他人已经实现了这种模式,但不确定我如何寻找示例。
谢谢
我正在寻找在 GoogleAppsForBusiness 域中运行的恶魔脚本可以解析传入电子邮件的模式示例。一些消息将包含对不同 GAScript 的调用,例如,可以更改特定文档的 ACL 设置。
我假设其他人已经实现了这种模式,但不确定我如何寻找示例。
谢谢
您可以在 Apps 脚本用户指南和教程中找到脚本示例。您也可以在论坛上搜索相关讨论。但我认为没有一个完全适合您,所有代码肯定都在那里,但不是在一个脚本上。
可能有人编写了这样的脚本但从未发布过。因为它做起来有点简单,而且每个人的用法都不一样。例如,您打算如何标记您的电子邮件(您已经阅读、执行的电子邮件等)?最好使用 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:我没有测试过这段代码
您可以创建一个 google 应用程序,该应用程序将由发送到应用程序特殊地址的传入电子邮件触发。该消息将转换为您的应用程序接收的 HTTP POST。
更多详细信息: https ://developers.google.com/appengine/docs/python/mail/receivingmail
我自己还没有尝试过,但在接下来的几天里会这样做。
有两种方法。首先,您可以使用 Google pub/sub 并在您的 AppScrit 端点中处理传入通知。第二种是在你的 AppScript 代码中使用 googleapis npm 包,这里是一个示例。希望能帮助到你。
这些是步骤: