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

如何在Gmail同线程中回复原始邮件收件人(Apps Script实现)

解决方案:通过Gmail API实现线程内指定收件人回复

GmailApp的内置方法确实无法直接满足“在原线程内回复原始邮件收件人”的需求,需要借助Gmail API来实现,步骤如下:

1. 启用Gmail API

在Apps Script编辑器中:

  • 点击左侧菜单栏的「服务」→「添加服务」
  • 找到「Gmail API」并添加,版本选择最新稳定版

2. 实现代码示例

替换你原有的代码,使用以下逻辑:

var emailBody = "Hello, This is a reminder to the previous email";
var existingThreadId = "你的线程ID"; // 替换为实际线程ID

// 获取原始线程和首条消息
var thread = GmailApp.getThreadById(existingThreadId);
var originalMessage = thread.getMessages()[0];
var recipientEmail = originalMessage.getTo();
var originalSubject = originalMessage.getSubject();
var originalMessageId = originalMessage.getId();

// 构造回复的邮件头和内容
var replySubject = originalSubject.startsWith("Re: ") ? originalSubject : `Re: ${originalSubject}`;
var rawMessage = [
  `To: ${recipientEmail}`,
  `Subject: ${replySubject}`,
  `In-Reply-To: ${originalMessageId}`,
  `References: ${originalMessageId}`,
  `Content-Type: text/html; charset=utf-8`,
  ``,
  emailBody
].join("\r\n");

// 编码为base64url格式
var encodedMessage = Utilities.base64EncodeWebSafe(rawMessage, Utilities.Charset.UTF_8);

// 发送回复并关联到原线程
Gmail.Users.Messages.send(
  {raw: encodedMessage},
  "me",
  {threadId: existingThreadId}
);

代码说明

  • 邮件头设置:In-Reply-To和References是关键,这两个头会让Gmail将新邮件识别为原线程的回复,而非独立邮件。
  • base64编码:Gmail API要求邮件内容以base64url格式传递,所以需要用Utilities.base64EncodeWebSafe处理。
  • 线程关联:调用Gmail.Users.Messages.send时传入threadId参数,确保回复直接归入原线程。

注意事项

  • 首次运行代码时,需要授权Gmail API的访问权限(授权范围包含发送邮件)。
  • 如果原始邮件有多个收件人,originalMessage.getTo()会返回所有收件人(用逗号分隔),代码会自动全部回复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:17:09