尝试构建一个简单的功能,在执行时将打开的电子邮件保存为.eml
到本地计算机。
使用以下代码,电子邮件将保存为original_msg.txt
在Chrome设置中,您可以强制打开“另存为”对话框并将其默认为.eml
,这很好,但问题是当您执行脚本时会打开一个空白标签,即使在你的下载已经完成。
我正在考虑以某种方式关闭标签,或改变我接近此任务的方式。
Code.gs
function saveEmail(e) {
// Activate temporary Gmail add-on scopes, in this case so that the
// open message metadata can be read.
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
// Build URL to open based on a base URL and the message ID.
var messageId = e.messageMetadata.messageId;
var url = "https://mail.google.com/mail/u/0?view=att&th=" + messageId + "&attid=0&disp=comp&safe=1&zw";
return CardService.newUniversalActionResponseBuilder()
.setOpenLink(CardService.newOpenLink()
.setUrl(url))
.build();
}
appscript.json
{
"oauthScopes": [
"https://www.googleapis.com/auth/gmail.addons.execute",
"https://www.googleapis.com/auth/gmail.addons.current.message.metadata"
],
"gmail": {
"name": "Save Email",
"logoUrl": "https://www.example.com/hosted/images/2x/my-icon.png",
"universalActions": [{
"text": "Save Email",
"runFunction": "saveEmail"
}],
"version": "TRUSTED_TESTER_V2"
}
}