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

如何使用InboxSDK在Gmail收件箱列表中获取邮件正文?

Gmail扩展:收件箱列表提取邮件正文方案

提取预览内容(无需完整正文)

你已经拿到threadRowView对象,调用getElement()能获取到这一行对应的DOM节点。Gmail列表里的邮件预览文本一般在特定类名的元素里,比如.y2或者.bog(Gmail的类名可能会更新,建议自己打开Chrome开发者工具Elements面板确认当前类名)。用DOM查询就能拿到:

// 获取当前行的DOM元素
const rowDom = threadRowView.getElement();
// 查找预览文本元素(多个类名是为了兼容不同版本)
const previewEl = rowDom.querySelector('.y2, .bog');
if (previewEl) {
  const previewText = previewEl.textContent.trim();
  // 用预览文本判断要不要加标签
  console.log('邮件预览:', previewText);
}

这种方法只能拿到部分预览内容,如果必须要完整正文,得用下面的方案。

获取完整邮件正文

InboxSDK的列表视图没有直接提供完整正文的接口,得借助Gmail官方API:

  1. 先通过threadRowView.getThreadID()拿到线程ID;
  2. 调用Gmail API的users.threads.get接口获取完整线程数据,从中提取正文。

示例代码逻辑:

const threadId = threadRowView.getThreadID();
// 调用Gmail API(需要先完成OAuth授权和API配置)
gapi.client.gmail.users.threads.get({
  userId: 'me',
  id: threadId,
  format: 'full' // 可选raw/minimal/full,按需选择
}).then(res => {
  const thread = res.result;
  // 遍历线程里的每一封邮件
  thread.messages.forEach(msg => {
    const payload = msg.payload;
    let fullBody = '';
    
    // 处理单部分邮件
    if (payload.body.size > 0) {
      // 解码base64编码的正文
      fullBody = atob(payload.body.data.replace(/-/g, '+').replace(/_/g, '/'));
    } 
    // 处理多部分邮件(带附件/HTML+文本的情况)
    else if (payload.parts) {
      // 找text/plain类型的部分
      const textPart = payload.parts.find(part => part.mimeType === 'text/plain');
      if (textPart) {
        fullBody = atob(textPart.body.data.replace(/-/g, '+').replace(/_/g, '/'));
      }
    }

    console.log('完整邮件正文:', fullBody);
    // 这里根据正文内容添加标签
  });
}).catch(err => {
  console.error('获取邮件详情失败:', err);
});

关键注意事项

  • DOM类名不稳定:Gmail经常更新页面结构,用DOM提取预览的方法要定期验证类名,避免突然失效;
  • API权限配置:用Gmail API需要在扩展manifest里声明权限(比如https://www.googleapis.com/auth/gmail.modify),还要完成OAuth授权流程;
  • 预览足够就别用API:如果只是简单的标签判断,预览内容基本够用,调用API会增加复杂度和用户授权步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:05:29