You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Gmail插件获取邮件正文中的选中文本

实现Gmail插件同步邮件正文选中文本的方案

由于Gmail插件的沙箱隔离机制,无法直接监听邮件正文的文本选中事件,只能通过用户主动触发的方式来获取选中内容,以下是官方支持的可行方案:

核心思路

通过给Gmail添加自定义上下文右键菜单,用户选中文本后点击菜单选项,触发插件获取并同步选中内容到侧边卡片中。

具体实现步骤

1. 注册上下文菜单

在插件的onInstall和onOpen函数中,创建右键菜单:

function onInstall(e) {
  onOpen(e);
}

function onOpen(e) {
  const ui = GmailApp.getUi();
  // 添加仅在文本选中时显示的右键菜单
  ui.createAddonMenu()
    .addItem('同步选中文本到插件', 'syncSelectedText')
    .addToUi();
}

2. 处理选中文本同步逻辑

编写回调函数获取选中文本,并更新插件侧边栏的卡片内容:

function syncSelectedText(e) {
  // 从事件参数中获取用户选中的文本
  const selectedText = e.selectedText;

  // 无选中文本时提示用户
  if (!selectedText) {
    const emptyCard = CardService.newCardBuilder()
      .setHeader(CardService.newCardHeader().setTitle('提示'))
      .addSection(CardService.newCardSection()
        .addWidget(CardService.newTextParagraph().setText('请先选中邮件正文中的文本内容')))
      .build();
    
    return CardService.newActionResponseBuilder()
      .setNavigation(CardService.newNavigation().updateCard(emptyCard))
      .build();
  }

  // 创建展示选中文本的卡片
  const contentCard = CardService.newCardBuilder()
    .setHeader(CardService.newCardHeader().setTitle('已同步选中内容'))
    .addSection(CardService.newCardSection()
      .addWidget(CardService.newTextParagraph().setText(`你选中的文本:\n${selectedText}`)))
    .build();

  // 更新插件侧边栏的卡片
  return CardService.newActionResponseBuilder()
    .setNavigation(CardService.newNavigation().updateCard(contentCard))
    .build();
}

3. 配置插件权限

确保在appsscript.json中配置正确的权限范围:

{
  "oauthScopes": [
    "https://www.googleapis.com/auth/gmail.addons.execute",
    "https://www.googleapis.com/auth/gmail.readonly"
  ],
  "gmail": {
    "name": "文本同步插件",
    "logoUrl": "",
    "contextualTriggers": [
      {
        "unconditional": {},
        "onTriggerFunction": "syncSelectedText"
      }
    ],
    "primaryColor": "#4285F4",
    "secondaryColor": "#4285F4"
  }
}

注意事项

  • 无法实现“实时自动同步”:受限于Gmail插件的沙箱机制,不能直接监听邮件正文的选中事件,必须通过用户点击菜单触发。
  • 上下文菜单仅在用户选中邮件正文文本时才会显示(Gmail自动控制)。
  • 测试时需要将插件部署为测试版本,在Gmail中启用后才能看到右键菜单。

内容的提问来源于stack exchange,提问作者Poojan3037

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:05:18