【问题标题】:How do i send a email on same thread using google-api-nodejs-client nodejs如何使用 google-api-nodejs-client nodejs 在同一线程上发送电子邮件
【发布时间】:2017-07-08 01:11:54
【问题描述】:

我对使用节点模块 google-api-nodejs-client 发送的电子邮件有完整的响应,就像 { "id": "1231212312", "labelIds": ["UNREAD", "SENT", "INBOX"], "threadId": "23123123" }

我需要再次向该电子邮件地址发送一封电子邮件,但不是在同一线程中发送新电子邮件。

我查看了文档,但找不到相关内容。

这里是其文档的链接:https://github.com/google/google-api-nodejs-client/blob/master/apis/gmail/v1.js#L796

谢谢!

【问题讨论】:

    标签: javascript node.js gmail gmail-api google-api-nodejs-client


    【解决方案1】:

    为了使您的消息显示在同一个线程中,您需要使其符合 RFC,这意味着您需要添加 In-Reply-ToReferences 标头,其中包含之前的 Message-ID(也是标头)消息。

    之后,您可以将 threadId 提供给 Gmail API,然后将其作为同一线程发送。 Gmail 还要求您的“主题”与上一封邮件相同。

    参考资料:

    【讨论】:

    • 所以我需要添加“In-Reply-To”和引用而不是“To”:messageId 即email_lines.push(`From:${user_account.email}`); email_lines.push(`In-Reply-To:${contact_email}`); email_lines.push(`References: '15a5236d11e3bb65'`); email_lines.push('Content-type :text/html;charset=iso-8859-1'); email_lines.push('MIME-Version:1.0');gmail.users.messages.send({ auth: oauth2Client, 'userId': 'me', 'threadId': '15a5236d11e3bb65', 'resource': { 'raw': base64EncodedEmail } 对吗?像这样的东西?
    • 您仍然需要 To 标头,您只需要也应用其他标头。 Referenes 和 In-Reply-To 需要匹配上一条消息的 Message-ID 标头。
    • Message-ID 的一个例子是<CADeEaBjZA-6GNvy31Wj11kzrxU0uAsArNg346DOwMB2u_2gpnQ@mail.gmail.com>
    • {"id": "15a5236d11e3bb65", "labelIds": ["UNREAD", "SENT", "INBOX"], "threadId": "15a5236d11e3bb65"} 所以使用这个响应 -> Id @mail.gmail.com 是我的消息 ID 对吗?
    • 不,您需要在使用您的回复的id发送消息后获取消息。然后在您刚刚发送的消息的标题中,您需要找到“message-id”并获取它。这是您需要获取的 RFC 2822 标头。
    猜你喜欢
    • 1970-01-01
    • 2014-12-07
    • 2019-06-14
    • 2017-01-19
    • 2021-10-23
    • 2014-09-16
    • 2021-03-17
    • 2021-04-14
    • 1970-01-01
    相关资源
    最近更新 更多