Gmail API – 如何从电子邮件有效负载标头中仅请求一个名称/值对?

我们如何只捕获gmail API的api响应中的电子邮件地址.该

fields参数设置为payload / headers,它返回的数据比响应中所需的数据多.

我们所需要的只是
JSON响应中一个名称/值对的值;例如

我们现在的完整响应看起来像这样

    {
     "payload": {
     "headers": [
                 {
                  "name": "Delivered-To",
                  "value": "xxxxxxx"
                {
                 "name": "Received",
                 "value": "xxxxxxxx"
                },
                {
                "name": "Received-SPF",
                "value": "----"
                 },......
                 {
                  "name": "To",
                  "value": "xxxxxxx" 
                 }, ...... E.T.C........E.T.C ......

  /*All we want is one name/value pair to be returned e.g. */
      {
        "payload": {
                 "headers": [
                   {
               "name": "X-Failed-Recipients",
               "value": "............."
               }
             ]
      }

一个更好的问题可能是通过gmail API获取退回/返回邮件的更好方法吗?

此外,是否可以请求XML响应而不是JSON.如何为gmail API做到这一点?

谢谢 !!

最佳答案 您可以执行messages.get(format = METADATA,metadataIncludeHeaders = [“To”,“From”,“Subject”]),现在只需要请求您关注的特定标头.请注意,这仅适用于元数据格式(如果您希望所有正文都获得完整的电子邮件,它也不会包含正文.基于标题列表,不应该太难将其转换为地图/密钥的dict => [list,of,values].

关于你的第二个问题,是的,你绝对可以以任何你想要的格式请求回复.这是一个标准的Google API问题.我找不到一个好的参考(肯定会有一些搜索)但通常你可以设置一个“alt = xml”或“alt =”查询参数来获得该格式的响应.不确定这是如何在任何特定客户端库中公开的.

点赞