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

如何通过Google App Script处理新收到的电子邮件?

当然可行!这其实是Google Apps Script和Gmail集成的常用玩法,刚好能补上原生过滤器做不到的自定义操作。下面给你一步步捋清楚怎么实现:

具体实现步骤

1. 先把你的脚本调整成可触发的格式

首先得确保你的脚本能接收单封邮件对象作为参数,比如把核心处理逻辑封装成这样的函数:

function handleNewEmail(message) {
  // 这里写你的自定义操作,比如提取邮件内容、添加自定义标签、转发给特定团队成员等
  Logger.log("正在处理邮件:" + message.getSubject());
}

这个message参数是Gmail的GmailMessage对象,能调用各种邮件操作方法,满足你的自定义需求。

2. 设置触发器(替代原生过滤器的核心)

Gmail原生过滤器里没法直接选“运行脚本”,但咱可以用Apps Script的触发器来实现同样的效果:

  • 打开你的Apps Script项目,点左侧那个时钟图标(「触发器」)
  • 点「添加触发器」,按下面的配置来:
    • 选择要运行的函数:选你刚才写的handleNewEmail(或者你自己的函数名)
    • 事件来源:选「Gmail」
    • 事件类型:选「收到新邮件时」
    • 可选配置「收件箱包含」:这里可以填过滤规则,比如from:xxx@example.com或者subject:重要通知,和原生过滤器的规则语法一样,用来筛选要处理的邮件
    • 保存后按照提示完成权限授权就行,这一步必须做,不然脚本没权限访问你的Gmail

3. 更灵活的方案:标签+触发器

如果你需要更复杂的过滤规则,也可以先在Gmail里用原生过滤器给符合条件的邮件打个专属标签(比如「需脚本处理」),然后让脚本盯着这个标签的新增邮件:

function processLabeledEmails() {
  var targetLabel = GmailApp.getUserLabelByName("需脚本处理");
  var threads = targetLabel.getThreads();
  
  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    messages.forEach(message => {
      handleNewEmail(message);
    });
    // 处理完可以把标签去掉,避免重复处理
    threads[i].removeLabel(targetLabel);
  }
}

然后给这个函数设置一个时间驱动触发器(比如每10分钟运行一次),这样就能批量处理新打上标签的邮件了。

几个要注意的点

  • 权限一定要给足:第一次运行触发器时会弹出授权请求,一定要允许脚本访问你的Gmail,不然啥都干不了
  • 别碰配额红线:Google Apps Script有每日操作限额,比如Gmail的读取/修改次数,如果要处理大量邮件,最好分批次来,别一下子干太多导致被限制
  • 先测试再上线:手动调用函数,传一封测试邮件进去跑一遍,确认逻辑没问题再开触发器,避免误操作邮件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:21:50