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

使用Apps Script自动转发邮件,能否使其显示在收件箱?

解决Gmail自动转发无标识及未转发邮件区分问题

一、让自动转发邮件显示Gmail原生转发标识

直接调用forward方法不会生成Gmail识别的转发格式和邮件头,需要手动构造转发邮件并关联原邮件线程:

  1. 构造符合Gmail转发格式的邮件
    给主题加上Fwd: 前缀,正文按Gmail手动转发的引用格式(带>的原邮件内容)包裹,同时插入自定义封面消息。
  2. 设置关联邮件头
    通过inReplyTo和References参数绑定原邮件的Message-ID,让Gmail将转发邮件归入原线程并显示转发标识。
  3. 标记原邮件为已转发
    调用markForwarded()方法,让原邮件也显示已转发状态。

示例代码(Google Apps Script):

function autoForwardWithMarking() {
  // 替换为你的过滤条件,比如"from:example@domain.com label:inbox"
  var targetThreads = GmailApp.search("your_filter_query"); 
  var forwardTarget = "your_target_address@example.com";
  var customCoverMsg = "这里是你的特定封面消息";

  targetThreads.forEach(thread => {
    var originalMsg = thread.getMessages()[thread.getMessageCount() - 1];
    var originalMsgId = originalMsg.getMessageId();

    // 构造转发主题和正文
    var forwardedSubject = `Fwd: ${originalMsg.getSubject()}`;
    var forwardedBody = `${customCoverMsg}\n\n> ---------- Forwarded message ----------\n` +
                        `> From: ${originalMsg.getFrom()}\n` +
                        `> Date: ${originalMsg.getDate()}\n` +
                        `> Subject: ${originalMsg.getSubject()}\n` +
                        `> To: ${originalMsg.getTo()}\n\n` +
                        originalMsg.getBody();

    // 创建并发送转发邮件,绑定原邮件线程
    GmailApp.createDraft(forwardTarget, forwardedSubject, "", {
      htmlBody: forwardedBody,
      inReplyTo: originalMsgId,
      references: originalMsgId
    }).send();

    // 标记原邮件为已转发
    originalMsg.markForwarded();
  });
}

二、区分未被转发的邮件

放弃仅标记已读的方式,改用自定义标签实现可视化区分:

  1. 创建专属标签
    先创建一个如“未自动转发”的标签,方便快速识别未处理邮件:
    function createUnforwardedLabel() {
      var label = GmailApp.getUserLabelByName("未自动转发");
      if (!label) {
        GmailApp.createLabel("未自动转发");
      }
    }
    
  2. 给未转发邮件添加标签
    搜索符合过滤条件但未被转发的邮件,批量添加标签:
    function tagUnforwardedEmails() {
      // 替换为你的过滤条件,加上-is:forwarded筛选未转发邮件
      var unforwardedThreads = GmailApp.search("your_filter_query AND -is:forwarded");
      var label = GmailApp.getUserLabelByName("未自动转发");
      unforwardedThreads.forEach(thread => thread.addLabel(label));
    }
    
  3. 可选:给已转发邮件添加标签
    同样可以创建“已自动转发”标签,处理完成后给原邮件添加,进一步区分状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 21:42:37