Gmail API In-Reply-To 不工作(谷歌不处理一方面) [英] Gmail API In-Reply-To not working(Google not handling on one side)

查看:13
本文介绍了Gmail API In-Reply-To 不工作(谷歌不处理一方面)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题:当通过 api 发送电子邮件回复时,在接收方显示为包含两封电子邮件消息的线程(接收方良好)但发件人有两封不同的电子邮件,一封在收件箱中,一封在已发送邮件中(发件人方面的问题).

例如:

电子邮件从 A 发送到 B.B 再次发送给 A.

在 api 中,我在In-Reply-To"和References"中提供上一个电子邮件消息 ID,(根据 rfc822 格式)这里 Google 正在处理 A 端的消息 ID,但不在 B 端边.A 在单个线程中以两封邮件的形式接收邮件,但在 B 的帐户中,它显示为两封单独的电子邮件,一封在收件箱中,一封在发送中.

使用的 API:

Problem: When Reply to email is sent via api then in receiver side it is showing as thread that contains two email messages(good on receivers side) but the sender has two different emails one in Inbox and one in Sent Mail(Problem in sender side).

for example:

Email is sent from A to B. Again B sends to A.

here in api i am giving the previous email message-id in "In-Reply-To" and "References",(according to rfc822 format) here Google is handling that message-id on the A side but not on B side. A receives the message in a single thread as two messages but in B's account it is showing as two separate emails one in Inbox and one in sent.

Api used:

https://www.googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=multipart Content-Type: "message/rfc822; boundary=foo_bar_baz"

request body is in rfc2822 format

解决方案

Noticed this in my production app today as well. The change log did not give a clue as to what happened, but I found the problem in the new documentation for managing threads:

  1. The requested threadId must be specified on the Message or Draft.Message you supply with your request.
  2. The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
  3. The Subject headers must match.

In other words, the threadId needs to be supplied. I don't know if this is a bug or not, since it is not documented in the sending message-documentation that was updated on the same day.

I want to respond to the latest message in my inbox. Let's get the relevant information:

Request 1:

maxResults = 1
fields = messages/id

GET https://www.googleapis.com/gmail/v1/users/me/messages?maxResults=1&fields=messages%2Fid

Response 1:

{
 "messages": [
  {
   "id": "15071b210a1ac883",
   "threadId": "15071a4886871a10"
  }
 ]
}

Request 2:

format = metadata
metadataHeaders = In-Reply-To,References,Message-ID,Subject
fields = payload/headers

GET https://www.googleapis.com/gmail/v1/users/me/messages/15071b210a1ac883?format=metadata&metadataHeaders=In-Reply-To&metadataHeaders=References&metadataHeaders=Message-ID&metadataHeaders=Subject&fields=payload%2Fheaders

Response:

{
 "payload": {
  "headers": [
   {
    "name": "In-Reply-To",
    "value": "<CADsZLRyej6wRwCNYv91+dBu9uYhuqYo4pEqOpt41NftXJJqC7g@mail.gmail.com>"
   },
   {
    "name": "References",
    "value": "<CADsZLRyej6wRwCNYv91+dBu9uYhuqYo4pEqOpt41NftXJJqC7g@mail.gmail.com>"
   },
   {
    "name": "Message-ID",
    "value": "<CADsZLRzipMRrQv-A9m-r-EJafXXm1eS9ihw3ZD5g8ybfj+LYeg@mail.gmail.com>"
   },
   {
    "name": "Subject",
    "value": "Re: Perculiar"
   }
  ]
 }
}

All that is left is to create a message with all this data in the right places:

Request 3:

POST https://www.googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=multipart
Content-Type: multipart/related; boundary="foo_bar_baz"

--foo_bar_baz
Content-Type: application/json; charset=UTF-8

{
  "threadId": "15071a4886871a10"
}

--foo_bar_baz
Content-Type: message/rfc822

Content-Type: multipart/mixed; boundary="foo_bar"
In-Reply-To: <CADsZLRzipMRrQv-A9m-r-EJafXXm1eS9ihw3ZD5g8ybfj+LYeg@mail.gmail.com>
References: <CADsZLRyej6wRwCNYv91+dBu9uYhuqYo4pEqOpt41NftXJJqC7g@mail.gmail.com> <CADsZLRzipMRrQv-A9m-r-EJafXXm1eS9ihw3ZD5g8ybfj+LYeg@mail.gmail.com>
From: emtholin@gmail.com
To: emtholin@gmail.com
Subject: Re: Perculiar

--foo_bar
Content-Type: text/html; charset="UTF-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

<div dir="ltr"><b> This is where the message text goes </b></div>

--foo_bar
Content-Type: image/png
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="cool.png"

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

--foo_bar--
--foo_bar_baz--

This results in a new message with an attachment threaded like before:

这篇关于Gmail API In-Reply-To 不工作(谷歌不处理一方面)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆