仅修改主题并发送草稿
Modify only the subject and send the draft
我知道如何 send a Gmail draft with:
var draft = GmailApp.getDrafts()[0];
var msg = draft.send();
以及如何用update
修改草稿:
draft.update("mike@example.com", "current time", "The time hello")
但是如何只修改主题而不修改内容,不修改附件(如果有),不修改收件人?
- 您只想更新草稿的主题。
- 您不想修改正文、HTML 正文和附件文件。
- 您想使用 Google Apps 脚本实现此目的。
如果我的理解是正确的,这个示例脚本怎么样?我认为有几个答案。所以请把这当作其中之一。
在此示例脚本中,我使用了 Class GmailApp 和 Gmail API。脚本流程如下
- 使用 Class GmailApp 以文本形式检索草稿的原始数据。
- 替换原始数据的主题。
- 使用
Utilities.base64EncodeWebSafe()
. 将文本转换为 base64
- 通过 Gmail 使用新的原始数据更新草稿 API。
通过此流程,只能更新主题。
在您 运行 这个脚本之前,请在高级 Google 服务和 API 控制台启用 Gmail API。
在高级 Google 服务中启用 Gmail API v1
- 在脚本编辑器上
- 资源 -> 高级 Google 服务
- 开启 Gmail API v1
在 API 控制台启用 Gmail API
- 在脚本编辑器上
- 资源 -> 云平台项目
- 查看API控制台
- 在“开始”中,单击 "Explore and enable APIs"。
- 在左侧,单击“库”。
- 在搜索 API 和服务时,输入 "Gmail"。然后点击 Gmail API.
- 单击“启用”按钮。
- 如果API已经启用,请不要关闭。
示例脚本:
function updateDraftmail() {
var newSubject = "new subject"; // Please set new subject.
var userId = "me"; // Please set userId.
var draft = GmailApp.getDrafts()[0]; // Retrieve a draft.
var raw = draft.getMessage().getRawContent();
var newRaw = raw.replace(/Subject: \w.+/, "Subject: " + newSubject);
var newRawB64 = Utilities.base64EncodeWebSafe(newRaw, Utilities.Charset.UTF_8);
Gmail.Users.Drafts.update({message: {raw: newRawB64}}, userId, draft.getId());
}
参考资料:
如果我误解了您的问题并且这不是您想要的,我深表歉意。
我知道如何 send a Gmail draft with:
var draft = GmailApp.getDrafts()[0];
var msg = draft.send();
以及如何用update
修改草稿:
draft.update("mike@example.com", "current time", "The time hello")
但是如何只修改主题而不修改内容,不修改附件(如果有),不修改收件人?
- 您只想更新草稿的主题。
- 您不想修改正文、HTML 正文和附件文件。
- 您想使用 Google Apps 脚本实现此目的。
如果我的理解是正确的,这个示例脚本怎么样?我认为有几个答案。所以请把这当作其中之一。
在此示例脚本中,我使用了 Class GmailApp 和 Gmail API。脚本流程如下
- 使用 Class GmailApp 以文本形式检索草稿的原始数据。
- 替换原始数据的主题。
- 使用
Utilities.base64EncodeWebSafe()
. 将文本转换为 base64
- 通过 Gmail 使用新的原始数据更新草稿 API。
通过此流程,只能更新主题。
在您 运行 这个脚本之前,请在高级 Google 服务和 API 控制台启用 Gmail API。
在高级 Google 服务中启用 Gmail API v1
- 在脚本编辑器上
- 资源 -> 高级 Google 服务
- 开启 Gmail API v1
在 API 控制台启用 Gmail API
- 在脚本编辑器上
- 资源 -> 云平台项目
- 查看API控制台
- 在“开始”中,单击 "Explore and enable APIs"。
- 在左侧,单击“库”。
- 在搜索 API 和服务时,输入 "Gmail"。然后点击 Gmail API.
- 单击“启用”按钮。
- 如果API已经启用,请不要关闭。
示例脚本:
function updateDraftmail() {
var newSubject = "new subject"; // Please set new subject.
var userId = "me"; // Please set userId.
var draft = GmailApp.getDrafts()[0]; // Retrieve a draft.
var raw = draft.getMessage().getRawContent();
var newRaw = raw.replace(/Subject: \w.+/, "Subject: " + newSubject);
var newRawB64 = Utilities.base64EncodeWebSafe(newRaw, Utilities.Charset.UTF_8);
Gmail.Users.Drafts.update({message: {raw: newRawB64}}, userId, draft.getId());
}
参考资料:
如果我误解了您的问题并且这不是您想要的,我深表歉意。