Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 如何获得;正文“;及;“主题”;扩展撰写UI时草稿的字段?_Email_Google Apps Script_Gmail_Add On - Fatal编程技术网

Email 如何获得;正文“;及;“主题”;扩展撰写UI时草稿的字段?

Email 如何获得;正文“;及;“主题”;扩展撰写UI时草稿的字段?,email,google-apps-script,gmail,add-on,Email,Google Apps Script,Gmail,Add On,我们正在开发一个Gmail插件 这扩展了“撰写”窗口,您可以在其中撰写电子邮件 我们需要正在编写的消息的“From”、“To”、“Subject”和“Body” “From”可以像这样从会话对象中读取 var-imf=Session.getEffectiveUser().getEmail() 可以从正在调用的函数的事件对象的draftMetadata中读取“To” function composeEmail(event) { console.log(event.draftMetadata.toR

我们正在开发一个Gmail插件

这扩展了“撰写”窗口,您可以在其中撰写电子邮件

我们需要正在编写的消息的“From”、“To”、“Subject”和“Body”

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

var-imf=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 = []
  }
}
令我惊讶的是,主题键在那里,但没有被填写(是的,我确实输入了主题)

问题

如何在extended composer UI中获取用户正在编写的电子邮件的“主题”和“正文”

额外信息

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

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

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

我以前从未这样做过,所以这是一个猜测。我用开发工具查看了“编写html”对话框,我注意到了这一点

似乎有一堆隐藏的输入,用于存储在“编写”对话框中键入的值。因此,我会尝试以下方法:
formInputs.body或formInput.body从该隐藏元素的名称中获取键的名称。这只是猜测。

到目前为止,Compose触发器事件从未返回
subject
字段的值

我已经为这个填充了一个bug。点击★ 图标以跟踪此问题并获取更新。这也将有助于确定这一问题的优先次序

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

  • 获取
    messageId
  • 查找具有与其关联的
    messageId
    的草稿
  • 通过他们的
    draftId
  • 从草稿上的
    标题
    对象中获取主题行

  • 这只适用于回复特定邮件的草稿。

    嗨,拉瑟林,感谢您填写本期。我已将问题列为星号,以帮助确定问题的优先顺序。上下文触发器实际上是一种仅用于应答的选项。我们在撰写邮件时也确实需要它,目前似乎没有这样做的选项。这似乎现在已被修复,因此我可以查看read
    gmail.subject
    属性。这是如此的奇怪和令人失望,虽然我无法访问的消息,其中的答复是创建在撰写。
    contextualTriggers
    可以让我做各种聪明的事情,因为我可以知道源消息是什么。即使使用完整的
    https://www.googleapis.com/auth/gmail.readonly
    scope我看不到compose下的“replyTo”消息。如果compose UI不能是动态的,则无法真正理解它的意义:-(嗨,Cooper,谢谢你的猜测。应用程序脚本的代码正在后端执行,因此任何客户端变量,如
    窗口
    文档
    都不可用。这样就不可能从呈现的前端读取任何内容