You need to enable JavaScript to run this app. Google Apps Script(Gmail服务)能否将邮件作为附件转发?
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script(Gmail服务)能否将邮件作为附件转发?

能力判定

Google Apps Script 完全支持将当前查看的Gmail邮件以附件形式转发,不受默认常规转发逻辑的限制,也能完美适配onGmailMessageOpen这类Gmail上下文触发的自动执行场景。

核心实现逻辑
  • 内置的GmailMessage.forward()方法默认的转发逻辑,是把原邮件的正文、附件直接嵌入新邮件的正文区域,和“整封原邮件作为独立附件转发”的需求不匹配。
  • 要实现附件式转发,核心操作是先提取原邮件的标准原始EML格式内容,再将其打包为合规的邮件格式附件,挂载到新的发送邮件中完成投递。
适配场景的可直接复用代码
function onGmailMessageOpen(e) {
  // 获取当前打开的目标邮件实例
  const targetMail = GmailApp.getMessageById(e.messageMetadata.messageId);
  // 提取原邮件的全量原始EML格式内容
  const rawMailContent = targetMail.getRawContent();
  // 构造带附件的转发邮件完成发送
  GmailApp.sendEmail(
    "abc@def.com", // 目标收件人
    `[附件转发] ${targetMail.getSubject()}`, // 自定义邮件主题
    "原邮件已作为附件随本邮件发出", // 自定义邮件正文
    {
      attachments: [
        Utilities.newBlob(
          rawMailContent,
          "message/rfc822",
          `${targetMail.getSubject()}.eml`
        )
      ]
    }
  );
}
落地注意事项
  • 上述代码生成的EML附件,和Gmail客户端原生“将邮件作为附件转发”的效果完全一致,接收方可以直接通过各类邮件客户端打开附件,查看全量原邮件信息,包括收发件人记录、正文内容、内嵌附件。
  • 首次运行脚本时需要按提示授予Gmail邮件读取、邮件发送的对应权限,否则上下文触发逻辑无法正常在后台执行。
  • 该实现不会像默认的forward()方法一样自动继承原邮件的抄送、密送收件人,如果需要同步转发给其他关联收件人,需要在sendEmail的配置参数中手动补充对应字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 14:24:03