email - 扩展撰写UI时如何获取草稿的 "body"和 "subject"字段?

标签 email google-apps-script gmail add-on

我们正在开发一个 Gmail 插件,其中 extend the compose UI .

这会扩展您可以撰写电子邮件的撰写窗口。

我们需要正在撰写的邮件的“发件人”、“收件人”、“主题”和“正文”。

可以像这样从 Session 对象中读取“From”

var mySelf = Session.getEffectiveUser().getEmail();

可以从正在调用的函数的事件对象的 DraftMetadata 中读取“To”。

function composeEmail(event) { console.log(event.draftMetadata.toRecipients); }

无法从函数的事件对象中读取“Subject”和“Body”,因为它是 composeTrigger。该参数包含这些对象:

{
  formInput = {}, 
  clientPlatform = web, 
  formInputs = {}, 
  parameters = {}, 
  draftMetadata = {
    toRecipients = [test @test.com],
    subject = ,
    bccRecipients = [],
    ccRecipients = []
  }
}

令我惊讶的是,主题键在那里但没有填写(是的,我确实输入了主题)。

问题:

如何在扩展编写器 UI 中获取用户正在撰写的电子邮件的“主题”和“正文”?

额外信息:

上下文触发操作包含以下对象作为事件对象:

{
  clientPlatform = web, 
  messageMetadata = {
    messageId = 16e agg7323451256989f68,
    accessToken = AAGdOAawdaAOW8PWchmdawdk0N13STKnBPMAOXVjZVHyQMfAawdBtgEIrS6N8y5h2BOZnKFPlfsl5VBsyPiF7YiONOoP7XVjKZawdi - E6vI - jVU92dPmfj3RNmXfawdawdeaNMrXehAFLm
  }
}

通过上下文触发器读取电子邮件,将添加一个 messageId,其中可以使用 getBodygetSubject 方法。

最佳答案

到目前为止,Compose 触发事件永远不会返回 subject 字段的值。

我已经为此修复了一个错误here 。单击 ★ 图标关注此问题并获取更新。这也将有助于优先考虑此问题。

作为解决方法,您可以使用上下文触发器来:

  1. 获取messageId
  2. 查找与该 messageId 关联的草稿
  3. 通过 draftId 获取草稿
  4. 从草稿上的 Headers 对象中获取主题行。

这仅适用于正在回复特定消息的草稿。

关于email - 扩展撰写UI时如何获取草稿的 "body"和 "subject"字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59052163/

相关文章:

php - PHP邮件功能无法完成电子邮件的发送

php mysql 更新一行并发送包含更新信息的电子邮件

google-apps-script - 识别 Google 表格中最后更改的单元格位置

c# - 使用 Gmail 通过 C# 发送电子邮件

php - 无法使用 gmail 使用 php 发送电子邮件 - 授权错误

GMAIL API 在发送时删除了我的 html 属性

html - HTML 邮件链接中的电子邮件分隔符在不同的邮件客户端中是不同的

ruby-on-rails - Rails 邮件程序未发送

javascript - getRange、getDataRange 和 getActiveRange 之间的区别?

string - 文档 : Log text selection as string 的 Google Apps 脚本