1

尝试构建一个简单的功能,在执行时将打开的电子邮件保存.eml到本地计算机。

使用以下代码将电子邮件另存为original_msg.txt

在 Chrome 设置中,您可以强制打开“另存为”对话框并将其默认为.eml,这很好,但问题是当您执行脚本时,它会打开一个空白选项卡,即使在下载完成后仍保持打开状态。

我正在考虑以某种方式关闭选项卡,或者改变我处理这项任务的方式。

代码.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"
  }
}
4

0 回答 0