我正在尋找模式示例,其中在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