簡體   English   中英

如何使用Gmail的Node.js API設置收件人

[英]How to set recipients with Gmail's Node.js API

盡管看起來很簡單,但我似乎無法弄清楚如何使用Google的Gmail API設置草稿的收件人。 文檔說, users.messages Resource對象包含一個payload對象,該payload對象包含一個headers對象,並且該headers對象包含名稱-值對。

// example from google's gmail API documentation
"payload": {
  "partId": string,
  "mimeType": string,
  "filename": string,
  "headers": [
    {
      "name": string,
      "value": string
    }
  ],
  "body": users.messages.attachments Resource,
  "parts": [
    (MessagePart)
  ]
},

我假設您在這些標題中設置了草稿的“ To”部分,因為文檔中說

此消息部分上的標題列表。 對於代表整個消息有效負載的頂級消息部分,它將包含標准的RFC 2822電子郵件標頭,例如“收件人”,“發件人”和“主題”。

但是,當我發出類似以下內容的請求時

"payload" : {
  "headers" : [
    {
      "name"  : "To",
      "value" : "me"
      // "me" should direct the draft to myself
    }
  ]
}

至草稿的“至”部分仍為空。 有什么解決方案或建議嗎?

在您的請求中,您需要:

"headers" : [ "name" : "To", "value" : "me" ]

"headers"應該是一個對象數組,但是您的數組不包含任何對象。

相反,它應如下所示:

"headers": [ { "name": "To", "value": "me" } ]

就像他們的例子一樣:

"payload": {
  "partId": string,
  "mimeType": string,
  "filename": string,
  "headers": [
    {
      "name": "To",
      "value": "me"
    }
  ],
  "body": users.messages.attachments Resource,
  "parts": [
    (MessagePart)
  ]
},

因此,似乎我在誤解Gmail API上的文檔。 當您向drafts.c​​reate發送請求時,您確實需要提供一個users.messages Resource ,但是,並非所有內容都是可寫的。 只有threadIdlabelIdsraw是可寫對象。 事實證明,您根本不應該使用有效載荷來設置ToFrom等。您應該將它們包括在原始文件中。

我的新代碼看起來像這樣

let create = (toAddress, subject, content, callback) => {
  gmail.users.drafts.create(
    {
      'userId'  : 'me',
      'resource' : {
        'message' : {
          'raw' : base64.encodeURI(
                    `To:${toAddress}\r\n` + // Who were are sending to
                    `Subject:${subject}\r\n` + // Subject
                    `Date:\r\n` + // Removing timestamp
                    `Message-Id:\r\n` + // Removing message id
                    `From:\r\n` + // Removing from
                    `${content}` // Adding our actual message
                  )
        }
      }
    },
    (err, response) => {
      // Do stuff with response
      callback(err, response);
    }
  )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM