Ruby 通过Gmail API与收件人创建Gmail草稿

Ruby 通过Gmail API与收件人创建Gmail草稿,ruby,google-api,gmail,gmail-api,google-api-ruby-client,Ruby,Google Api,Gmail,Gmail Api,Google Api Ruby Client,我一直在试图找出如何通过Ruby库自动将收件人添加到使用Gmail API创建的电子邮件草稿中。我可以创建草稿,没有任何问题,但是设置收件人给我带来了麻烦,我还没有找到任何好的例子来展示添加电子邮件特定内容的最佳方法 使用GoogleAPI游乐场并引入已经创建的草稿,看起来结构应该与下面所示类似,但无论何时创建草稿,都没有收件人 @result = client.execute( :api_method => gmail.users.drafts.create, :pa

我一直在试图找出如何通过Ruby库自动将收件人添加到使用Gmail API创建的电子邮件草稿中。我可以创建草稿,没有任何问题,但是设置收件人给我带来了麻烦,我还没有找到任何好的例子来展示添加电子邮件特定内容的最佳方法

使用GoogleAPI游乐场并引入已经创建的草稿,看起来结构应该与下面所示类似,但无论何时创建草稿,都没有收件人

  @result = client.execute(
    :api_method => gmail.users.drafts.create,
    :parameters => {
      'userId' => "me"      
    },
    :body_object => {
      'message' => {
        'raw' =>  Base64.urlsafe_encode64('Test Email Message'),
        'payload' => {
          'headers' => 
          [
            {
              'name' => "To",
              'value' => "John Smith <john_smith.fake@gmail.com>"
            }
          ]
        }
      }
    }
  )
@result=client.execute(
:api_method=>gmail.users.drafts.create,
:参数=>{
“userId”=>“我”
},
:body_object=>{
“消息”=>{
'raw'=>Base64.urlsafe_encode64('测试电子邮件'),
“有效负载”=>{
“标题”=>
[
{
“名称”=>“至”,
“值”=>“约翰·史密斯”
}
]
}
}
}
)

'raw'应包含完整的(RFC822)电子邮件,包括正文和标题。不要使用“payload.headers”结构,该解析格式仅用于在message.get()期间返回

因此,对于“raw”,您需要Base64.urlsafe_encode64()一个字符串,如下所示:
“至:someguy@example.com\r\n来自:myself@example.com\r\n对象:我的主题\r\n\r\n主体在这里“

谢谢您的回答。我已将原始行切换到以下位置:'raw'=>Base64.urlsafe_encode64('to:test)。email@gmail.com\r\n来自:其他。email@gmail.com\r\n对象:Test\r\n\r\n Test Email')但我现在收到一个错误,它是:{“error”=>{“errors”=>[{“domain”=>“global”,“reason”=>“invalidArgument”,“message”=>“Invalid to header”}我还是遗漏了什么吗?真的吗?嗯,标题看起来不错。在“到:测试”之间有空格吗。email@gmail.com"?你什么时候做的?现在再试一次以确认这仍然发生?它工作了!也许我确实有一个空格,尽管我想我已经检查过了。非常感谢你的帮助!嗨@Kevin我有相同的错误“无效到标题”,这里是我的要点。我有什么想法吗???@joselo我会将你的“msg”格式化为字符串而不是对象。尝试硬编码值在这个回答或我的评论中,只要确保没有空格,看看这是否对你有帮助?这个问题的可能重复与那个问题不同。这个问题只是用于创建草稿,而这个问题是将收件人添加到草稿邮件中,由于文档不明确,很难找出收件人。