Gmail Apps 脚本函数显示来自 GMail Addon 的浏览器 MsgBox

Gmail Apps script function to display Browser MsgBox from GMail Addon

我有以下工作代码,它根据特定条件验证收件人列表。但是,我希望用 "Browser.msgbox" 操作替换生成的 "Logger.log" 操作,并且出于某种原因,GMail App Addons 不允许我这样做:

function validateRecipients(e) {
  var toEmails = e.draftMetadata.toRecipients, ccEmails = e.draftMetadata.ccRecipients, bccEmails = e.draftMetadata.bccRecipients, domains = [], uniqueDomains = [];
  var allEmails = toEmails.concat(ccEmails, bccEmails);
  for (var i = 0; i < allEmails.length; i++) {
    domains[i] = allEmails[i].split("@").pop().split(".")[0]; 
  }  
  uniqueDomains = domains.filter(listUnique);
  if(uniqueDomains.length <= 2 && uniqueDomains.indexOf("verasafe") != -1) {
    Logger.log("This Message is Good to Go");
  }

  else if(uniqueDomains.length == 0) {
    Logger.log("This Message has no recipients");
  }

  else {
    Logger.log("Please Validate Receipients of this Message and Try again");
  }
}

部分回答

Browser.msg 不能用于 Gmail 插件,因为,从 https://developers.google.com/apps-script/reference/base/browser

This class provides access to dialog boxes specific to Google Sheets.

您不能在 Gmail 中使用 Browser.msg 或任何 UI 类。

但是,有一个 new feature called Card Service 用于为 Gmail 插件创建 UI。

希望对您有所帮助!

我目前能找到的最接近的是 notification,它在卡片底部显示了一条快速消息(在 Google 的 Material 设计中它被称为 snackbar

https://developers.google.com/apps-script/reference/card-service/notification

除此之外,您需要更换一张新卡。

function _navigateToCard(card: GoogleAppsScript.Card_Service.Card, replace: boolean)
{
    var nav = CardService.newNavigation();

    replace ? nav.updateCard(card) : nav.pushCard(card)

    return CardService.newActionResponseBuilder()
      .setNavigation(nav)
      .build();
}