Node.js Gmail api从用户处获取电子邮件正文(文本或html)的正确方法。消息资源

Node.js Gmail api从用户处获取电子邮件正文(文本或html)的正确方法。消息资源,node.js,mime-types,gmail-api,Node.js,Mime Types,Gmail Api,我正在使用endpoint获取gmail响应,该响应的格式符合文档要求 从上述响应中解码/解密消息体的正确方法是什么 例如,在我的例子中,响应中的“parts”数组字段如下所示: [ { "partId": "0.0", "mimeType": "text/plain", "filename": "", "headers": [ { "name": "Content-Type", "value": "text/pla

我正在使用endpoint获取gmail响应,该响应的格式符合文档要求

从上述响应中解码/解密消息体的正确方法是什么

例如,在我的例子中,响应中的“parts”数组字段如下所示:

[
  {
    "partId": "0.0",
    "mimeType": "text/plain",
    "filename": "",
    "headers": [
      {
        "name": "Content-Type",
        "value": "text/plain; charset=\"UTF-8\"; format=flowed; delsp=yes"
      },
      {
        "name": "Content-Transfer-Encoding",
        "value": "base64"
      }
    ],
    "body": {
      "size": 1628,
      "data": "R29vZ2xlIGxvZ28NCg0KSGVsbG8gQXBwcyBTY3JpcHQgdXNlciwNCg0KVGhpcyBub3RpZmljYXRpb24gaXMgdG8gYWxlcnQgeW91IG9mIGFuIHVwZGF0ZSB0byBvbmUgb3IgbW9yZSBvZiB5b3VyIEFwcHMgIA0KU2NyaXB0IHByb2plY3RzIHRoYXQgYXJlIGF0dGFjaGVkIHRvIERvY3MsIFNoZWV0cywgYW5kIEZvcm1zIGRvY3VtZW50cyB3aXRoICANCnNjcmlwdCBzaGFyaW5nIHNldHRpbmdzIHRoYXQgZGlmZmVyIGZyb20gdGhvc2Ugb2YgdGhlIGRvY3VtZW50Lg0KDQpTdGFydGluZyBvbiBvciBhZnRlciBKdWx5IDZ0aCwgMjAxNywgdGhvc2Ugc2NyaXB0IHNoYXJpbmcgc2V0dGluZ3Mgd2lsbCBiZSAgDQp1cGRhdGVkIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBkb2N1bWVudHMgdG8gd2hpY2ggdGhleSdyZSBhdHRhY2hlZC4NCg0KVGhlIHNoYXJpbmcgc2V0dGluZ3MgdXBkYXRlIHNpbXBsaWZpZXMgc2hhcmluZyBzZXR0aW5ncyBmb3IgZG9jdW1lbnRzIHdpdGggIA0KYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMgYnkgdHJlYXRpbmcgdGhlbSBsaWtlIGEgc2luZ2xlIGRvY3VtZW50Lg0KDQpBcyBhIHJlc3VsdCBvZiB0aGUgc2hhcmluZyBzZXR0aW5ncyB1cGRhdGUsIGFuZCBhY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50ICANCmFjY2VzcyBsZXZlbCwgc29tZSB1c2VycyBtYXk6DQoNCg0KR2FpbiBvciBsb3NlIGFjY2VzcyB0byBhZmZlY3RlZCBwcm9qZWN0cw0KQ2hhbmdlIHRoZWlyIGFjY2VzcyBsZXZlbHMgKGZvciBleGFtcGxlLCBvd25lciwgZWRpdG9yLCByZWFkZXIpDQoNClRoaXMgY2hhbmdlIHdpbGwgbm90IGFmZmVjdCBzaGFyaW5nIHNldHRpbmdzIGZvciB0aGUgZG9jdW1lbnRzLiBPbmx5ICANCnNoYXJpbmcgc2V0dGluZ3Mgb2YgYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2lsbCBiZSB1cGRhdGVkLg0KDQpBIENTViBmaWxlIGF0dGFjaGVkIHRvIHRoaXMgbWVzc2FnZSBsaXN0cyBhbGwgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2hlcmUgIA0KeW91J3JlIHRoZSBvd25lciBhbmQgd2hvc2Ugc2hhcmluZyBzZXR0aW5ncyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdCBvZiB0aGlzICANCm1pZ3JhdGlvbi4gUGxlYXNlIHJldmlldyB0aGVzZSBkb2N1bWVudHMgYW5kIGNvbmZpcm0gdGhhdCB0aGVpciBzaGFyaW5nICANCnNldHRpbmdzIGFyZSBhbHNvIGFwcHJvcHJpYXRlIGZvciB0aGVpciBhdHRhY2hlZCBBcHBzIFNjcmlwdCBwcm9qZWN0cy4NCg0KSWYgY2hhbmdlcyBhcmUgcmVxdWlyZWQsIGZvciBlYWNoIGRvY3VtZW50IHdoZXJlIHNldHRpbmdzIG5lZWQgdG8gYmUgIA0KY2hhbmdlZCwgdXNlIG9uZSBvZiB0aGVzZSBtZXRob2RzOg0KDQoNCkluIERvY3Mgb3IgU2hlZXRzLCBjbGljayBTaGFyZS4NCkluIEZvcm1zLCBjbGljayBBZGQgQ29sbGFib3JhdG9yLg0KSW4gR29vZ2xlIERyaXZlLCBjbGljayBTaGFyZS4NCg0KU2luY2VyZWx5LA0KDQpUaGUgQXBwcyBTY3JpcHQgVGVhbQ0KDQoNCsKpIDIwMTcgR29vZ2xlIEluYy4gMTYwMCBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0EgOTQwNDMNCg0KWW91IGhhdmUgcmVjZWl2ZWQgdGhpcyB1cGRhdGUgYXMgYSBHIFN1aXRlIHNlcnZpY2UgYW5ub3VuY2VtZW50Lg0KDQo="
    }
  },
  {
    "partId": "0.1",
    "mimeType": "text/html",
    "filename": "",
    "headers": [
      {
        "name": "Content-Type",
        "value": "text/html; charset=\"UTF-8\""
      },
      {
        "name": "Content-Transfer-Encoding",
        "value": "quoted-printable"
      }
    ],
    "body": {
      "size": 3112,
      "data": "PCEtLSBUaGlzIGNvbnRhaW5zIENTUyBpbmZvLCBzdGFydHMgdGhlIGJvZHksIGFuZCBpbnNlcnRzIHRoZSBHb29nbGUgbG9nbyBoZWFkZXIgLS0-DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMwMDAwMDA7Ij4gPC9zcGFuPg0KPGRpdiBzdHlsZT0icGFkZGluZy10b3A6IDIycHg7IHBhZGRpbmctYm90dG9tOiA4cHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiAjZGNkY2RjOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHgiIHdpZHRoPSIxMDAlIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMwMDAwMDA7Ij48aW1nIGFsdD0iR29vZ2xlIGxvZ28iIGJvcmRlcj0iMCIgc3JjPSJodHRwOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzF4L2dvb2dsZWxvZ29fY29sb3JfMTIweDQ4ZHAucG5nIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IiB0aXRsZT0iR29vZ2xlIiB3aWR0aD0iMTIwIj4gPC9zcGFuPjwvZGl2Pg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjMDAwMDAwOyI-IDwhLS0gVGhpcyBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdWJqZWN0IC0tPiA8L3NwYW4-DQoNCg0KPCEtLSBQbGVhc2UgSU5TRVJUIHRoZSByZWxldmFudCBDdXN0b21lciBDb21tIGdrbXMgc25pcHBldCAtLT4NCjxwPkhlbGxvIEFwcHMgU2NyaXB0IHVzZXIsPC9wPg0KDQo8cD5UaGlzIG5vdGlmaWNhdGlvbiBpcyB0byBhbGVydCB5b3Ugb2YgYW4gdXBkYXRlIHRvIG9uZSBvciBtb3JlIG9mIHlvdXIgQXBwcyBTY3JpcHQgcHJvamVjdHMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gRG9jcywgU2hlZXRzLCBhbmQgRm9ybXMgZG9jdW1lbnRzIHdpdGggc2NyaXB0IHNoYXJpbmcgc2V0dGluZ3MgdGhhdCBkaWZmZXIgZnJvbSB0aG9zZSBvZiB0aGUgZG9jdW1lbnQuPC9wPg0KDQo8cD48c3Ryb25nPlN0YXJ0aW5nIG9uIG9yIGFmdGVyIEp1bHkgNnRoLCAyMDE3PC9zdHJvbmc-LCB0aG9zZSBzY3JpcHQgc2hhcmluZyBzZXR0aW5ncyB3aWxsIGJlIHVwZGF0ZWQgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIGRvY3VtZW50cyB0byB3aGljaCB0aGV5JiMzOTtyZSBhdHRhY2hlZC48L3A-DQoNCjxwPlRoZSBzaGFyaW5nIHNldHRpbmdzIHVwZGF0ZSBzaW1wbGlmaWVzIHNoYXJpbmcgc2V0dGluZ3MgZm9yIGRvY3VtZW50cyB3aXRoIGF0dGFjaGVkIEFwcHMgU2NyaXB0IHByb2plY3RzIGJ5IHRyZWF0aW5nIHRoZW0gbGlrZSBhIHNpbmdsZSBkb2N1bWVudC48L3A-DQoNCjxwPkFzIGEgcmVzdWx0IG9mIHRoZSBzaGFyaW5nIHNldHRpbmdzIHVwZGF0ZSwgYW5kIGFjY29yZGluZyB0byB0aGUgZG9jdW1lbnQgYWNjZXNzIGxldmVsLCBzb21lIHVzZXJzIG1heTo8L3A-DQoNCjx1bD4NCiAgPGxpPkdhaW4gb3IgbG9zZSBhY2Nlc3MgdG8gYWZmZWN0ZWQgcHJvamVjdHM8L2xpPg0KICA8bGk-Q2hhbmdlIHRoZWlyIGFjY2VzcyBsZXZlbHMgKGZvciBleGFtcGxlLCBvd25lciwgZWRpdG9yLCByZWFkZXIpPC9saT4NCjwvdWw-DQoNCjxwPjxzdHJvbmc-VGhpcyBjaGFuZ2Ugd2lsbCBub3QgYWZmZWN0IHNoYXJpbmcgc2V0dGluZ3MgZm9yIHRoZSBkb2N1bWVudHMuIE9ubHkgc2hhcmluZyBzZXR0aW5ncyBvZiBhdHRhY2hlZCBBcHBzIFNjcmlwdCBwcm9qZWN0cyB3aWxsIGJlIHVwZGF0ZWQuPC9zdHJvbmc-PC9wPg0KDQo8cD5BIENTViBmaWxlIGF0dGFjaGVkIHRvIHRoaXMgbWVzc2FnZSBsaXN0cyBhbGwgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2hlcmUgeW91JiMzOTtyZSB0aGUgb3duZXIgYW5kIHdob3NlIHNoYXJpbmcgc2V0dGluZ3Mgd2lsbCBjaGFuZ2UgYXMgYSByZXN1bHQgb2YgdGhpcyBtaWdyYXRpb24uIFBsZWFzZSByZXZpZXcgdGhlc2UgZG9jdW1lbnRzIGFuZCBjb25maXJtIHRoYXQgdGhlaXIgc2hhcmluZyBzZXR0aW5ncyBhcmUgYWxzbyBhcHByb3ByaWF0ZSBmb3IgdGhlaXIgYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMuPC9wPg0KDQo8cD5JZiBjaGFuZ2VzIGFyZSByZXF1aXJlZCwgZm9yIGVhY2ggZG9jdW1lbnQgd2hlcmUgc2V0dGluZ3MgbmVlZCB0byBiZSBjaGFuZ2VkLCB1c2Ugb25lIG9mIHRoZXNlIG1ldGhvZHM6PC9wPg0KDQo8dWw-DQogIDxsaT5JbiBEb2NzIG9yIFNoZWV0cywgY2xpY2sgPHN0cm9uZz5TaGFyZTwvc3Ryb25nPi48L2xpPg0KICA8bGk-SW4gRm9ybXMsIGNsaWNrIDxzdHJvbmc-QWRkIENvbGxhYm9yYXRvcjwvc3Ryb25nPi48L2xpPg0KICA8bGk-SW4gR29vZ2xlIERyaXZlLCBjbGljayA8c3Ryb25nPlNoYXJlPC9zdHJvbmc-LjwvbGk-DQo8L3VsPg0KDQo8cD5TaW5jZXJlbHksPC9wPg0KDQo8cD5UaGUgQXBwcyBTY3JpcHQgVGVhbTwvcD4NCjwhLS0gRmluYWxseSwgaW5jbHVkZSB0aGUgc3RhbmRhcmQgZm9vdGVyLiBUaGlzIGFsc28gZW5kcyB0aGUgYm9keSAtLT4NCjwhLS0gI2luY2x1ZGUgJy9na21zaWQvNjMyOTg2MycgLS0-DQoNCjwhLS0gRmluYWxseSwgaW5jbHVkZSB0aGUgVXNlciBzdGFuZGFyZCBmb290ZXIuIFRoaXMgYWxzbyBlbmRzIHRoZSBib2R5IC0tPg0KPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMHB4OyBjb2xvcjogIzY2NjY2NjsgcGFkZGluZy10b3A6IDhweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6ICNkY2RjZGM7IGJvcmRlci10b3Atd2lkdGg6IDFweCI-DQogIDxwPsKpIDIwMTcgIEdvb2dsZSBJbmMuIDE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzPC9wPg0KDQogIDxwPjxpPllvdSBoYXZlIHJlY2VpdmVkIHRoaXMgdXBkYXRlIGFzIGEgRyBTdWl0ZSBzZXJ2aWNlIGFubm91bmNlbWVudC48L2k-PC9wPg0KPC9kaXY-DQo8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjMiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hcHBzZXJ2ZS9ta3QvaW1nL2xUUERhTG1XbHg1blNpbTF6OWp3RG1vTVYzSjRvMVZfcDhjPS5naWYiPg=="
    }
  }
]
"body": {
      "size": 3112,
      "data": "PCEtLSBUaGlzIGN...<trimmed for succintness>..cDhjPS5naWYiPg=="
    }
public string GetBodyWithRecursion(MessagePart p, string mimeType)
{
   string Body = "";

        if (p.parts.Parts != null)
        {
            foreach (MessagePart part in p.Parts)
            {
                Body = $"{Body} {GetBodyWithRecursion(part, mimeType)}";
            }
        }
        else if (p.Body.Data != null && p.Body.AttachmentId == null && p.MimeType == mimeType)
        {
            Body = methodToConvertFrom64Url(p.Body.Data);


           }

            return Body;
}
在上面,第二个元素(partId 0.0,带有mimeType text/html)的主体如下所示:

[
  {
    "partId": "0.0",
    "mimeType": "text/plain",
    "filename": "",
    "headers": [
      {
        "name": "Content-Type",
        "value": "text/plain; charset=\"UTF-8\"; format=flowed; delsp=yes"
      },
      {
        "name": "Content-Transfer-Encoding",
        "value": "base64"
      }
    ],
    "body": {
      "size": 1628,
      "data": "R29vZ2xlIGxvZ28NCg0KSGVsbG8gQXBwcyBTY3JpcHQgdXNlciwNCg0KVGhpcyBub3RpZmljYXRpb24gaXMgdG8gYWxlcnQgeW91IG9mIGFuIHVwZGF0ZSB0byBvbmUgb3IgbW9yZSBvZiB5b3VyIEFwcHMgIA0KU2NyaXB0IHByb2plY3RzIHRoYXQgYXJlIGF0dGFjaGVkIHRvIERvY3MsIFNoZWV0cywgYW5kIEZvcm1zIGRvY3VtZW50cyB3aXRoICANCnNjcmlwdCBzaGFyaW5nIHNldHRpbmdzIHRoYXQgZGlmZmVyIGZyb20gdGhvc2Ugb2YgdGhlIGRvY3VtZW50Lg0KDQpTdGFydGluZyBvbiBvciBhZnRlciBKdWx5IDZ0aCwgMjAxNywgdGhvc2Ugc2NyaXB0IHNoYXJpbmcgc2V0dGluZ3Mgd2lsbCBiZSAgDQp1cGRhdGVkIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBkb2N1bWVudHMgdG8gd2hpY2ggdGhleSdyZSBhdHRhY2hlZC4NCg0KVGhlIHNoYXJpbmcgc2V0dGluZ3MgdXBkYXRlIHNpbXBsaWZpZXMgc2hhcmluZyBzZXR0aW5ncyBmb3IgZG9jdW1lbnRzIHdpdGggIA0KYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMgYnkgdHJlYXRpbmcgdGhlbSBsaWtlIGEgc2luZ2xlIGRvY3VtZW50Lg0KDQpBcyBhIHJlc3VsdCBvZiB0aGUgc2hhcmluZyBzZXR0aW5ncyB1cGRhdGUsIGFuZCBhY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50ICANCmFjY2VzcyBsZXZlbCwgc29tZSB1c2VycyBtYXk6DQoNCg0KR2FpbiBvciBsb3NlIGFjY2VzcyB0byBhZmZlY3RlZCBwcm9qZWN0cw0KQ2hhbmdlIHRoZWlyIGFjY2VzcyBsZXZlbHMgKGZvciBleGFtcGxlLCBvd25lciwgZWRpdG9yLCByZWFkZXIpDQoNClRoaXMgY2hhbmdlIHdpbGwgbm90IGFmZmVjdCBzaGFyaW5nIHNldHRpbmdzIGZvciB0aGUgZG9jdW1lbnRzLiBPbmx5ICANCnNoYXJpbmcgc2V0dGluZ3Mgb2YgYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2lsbCBiZSB1cGRhdGVkLg0KDQpBIENTViBmaWxlIGF0dGFjaGVkIHRvIHRoaXMgbWVzc2FnZSBsaXN0cyBhbGwgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2hlcmUgIA0KeW91J3JlIHRoZSBvd25lciBhbmQgd2hvc2Ugc2hhcmluZyBzZXR0aW5ncyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdCBvZiB0aGlzICANCm1pZ3JhdGlvbi4gUGxlYXNlIHJldmlldyB0aGVzZSBkb2N1bWVudHMgYW5kIGNvbmZpcm0gdGhhdCB0aGVpciBzaGFyaW5nICANCnNldHRpbmdzIGFyZSBhbHNvIGFwcHJvcHJpYXRlIGZvciB0aGVpciBhdHRhY2hlZCBBcHBzIFNjcmlwdCBwcm9qZWN0cy4NCg0KSWYgY2hhbmdlcyBhcmUgcmVxdWlyZWQsIGZvciBlYWNoIGRvY3VtZW50IHdoZXJlIHNldHRpbmdzIG5lZWQgdG8gYmUgIA0KY2hhbmdlZCwgdXNlIG9uZSBvZiB0aGVzZSBtZXRob2RzOg0KDQoNCkluIERvY3Mgb3IgU2hlZXRzLCBjbGljayBTaGFyZS4NCkluIEZvcm1zLCBjbGljayBBZGQgQ29sbGFib3JhdG9yLg0KSW4gR29vZ2xlIERyaXZlLCBjbGljayBTaGFyZS4NCg0KU2luY2VyZWx5LA0KDQpUaGUgQXBwcyBTY3JpcHQgVGVhbQ0KDQoNCsKpIDIwMTcgR29vZ2xlIEluYy4gMTYwMCBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0EgOTQwNDMNCg0KWW91IGhhdmUgcmVjZWl2ZWQgdGhpcyB1cGRhdGUgYXMgYSBHIFN1aXRlIHNlcnZpY2UgYW5ub3VuY2VtZW50Lg0KDQo="
    }
  },
  {
    "partId": "0.1",
    "mimeType": "text/html",
    "filename": "",
    "headers": [
      {
        "name": "Content-Type",
        "value": "text/html; charset=\"UTF-8\""
      },
      {
        "name": "Content-Transfer-Encoding",
        "value": "quoted-printable"
      }
    ],
    "body": {
      "size": 3112,
      "data": "PCEtLSBUaGlzIGNvbnRhaW5zIENTUyBpbmZvLCBzdGFydHMgdGhlIGJvZHksIGFuZCBpbnNlcnRzIHRoZSBHb29nbGUgbG9nbyBoZWFkZXIgLS0-DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMwMDAwMDA7Ij4gPC9zcGFuPg0KPGRpdiBzdHlsZT0icGFkZGluZy10b3A6IDIycHg7IHBhZGRpbmctYm90dG9tOiA4cHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiAjZGNkY2RjOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHgiIHdpZHRoPSIxMDAlIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMwMDAwMDA7Ij48aW1nIGFsdD0iR29vZ2xlIGxvZ28iIGJvcmRlcj0iMCIgc3JjPSJodHRwOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzF4L2dvb2dsZWxvZ29fY29sb3JfMTIweDQ4ZHAucG5nIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IiB0aXRsZT0iR29vZ2xlIiB3aWR0aD0iMTIwIj4gPC9zcGFuPjwvZGl2Pg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjMDAwMDAwOyI-IDwhLS0gVGhpcyBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdWJqZWN0IC0tPiA8L3NwYW4-DQoNCg0KPCEtLSBQbGVhc2UgSU5TRVJUIHRoZSByZWxldmFudCBDdXN0b21lciBDb21tIGdrbXMgc25pcHBldCAtLT4NCjxwPkhlbGxvIEFwcHMgU2NyaXB0IHVzZXIsPC9wPg0KDQo8cD5UaGlzIG5vdGlmaWNhdGlvbiBpcyB0byBhbGVydCB5b3Ugb2YgYW4gdXBkYXRlIHRvIG9uZSBvciBtb3JlIG9mIHlvdXIgQXBwcyBTY3JpcHQgcHJvamVjdHMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gRG9jcywgU2hlZXRzLCBhbmQgRm9ybXMgZG9jdW1lbnRzIHdpdGggc2NyaXB0IHNoYXJpbmcgc2V0dGluZ3MgdGhhdCBkaWZmZXIgZnJvbSB0aG9zZSBvZiB0aGUgZG9jdW1lbnQuPC9wPg0KDQo8cD48c3Ryb25nPlN0YXJ0aW5nIG9uIG9yIGFmdGVyIEp1bHkgNnRoLCAyMDE3PC9zdHJvbmc-LCB0aG9zZSBzY3JpcHQgc2hhcmluZyBzZXR0aW5ncyB3aWxsIGJlIHVwZGF0ZWQgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIGRvY3VtZW50cyB0byB3aGljaCB0aGV5JiMzOTtyZSBhdHRhY2hlZC48L3A-DQoNCjxwPlRoZSBzaGFyaW5nIHNldHRpbmdzIHVwZGF0ZSBzaW1wbGlmaWVzIHNoYXJpbmcgc2V0dGluZ3MgZm9yIGRvY3VtZW50cyB3aXRoIGF0dGFjaGVkIEFwcHMgU2NyaXB0IHByb2plY3RzIGJ5IHRyZWF0aW5nIHRoZW0gbGlrZSBhIHNpbmdsZSBkb2N1bWVudC48L3A-DQoNCjxwPkFzIGEgcmVzdWx0IG9mIHRoZSBzaGFyaW5nIHNldHRpbmdzIHVwZGF0ZSwgYW5kIGFjY29yZGluZyB0byB0aGUgZG9jdW1lbnQgYWNjZXNzIGxldmVsLCBzb21lIHVzZXJzIG1heTo8L3A-DQoNCjx1bD4NCiAgPGxpPkdhaW4gb3IgbG9zZSBhY2Nlc3MgdG8gYWZmZWN0ZWQgcHJvamVjdHM8L2xpPg0KICA8bGk-Q2hhbmdlIHRoZWlyIGFjY2VzcyBsZXZlbHMgKGZvciBleGFtcGxlLCBvd25lciwgZWRpdG9yLCByZWFkZXIpPC9saT4NCjwvdWw-DQoNCjxwPjxzdHJvbmc-VGhpcyBjaGFuZ2Ugd2lsbCBub3QgYWZmZWN0IHNoYXJpbmcgc2V0dGluZ3MgZm9yIHRoZSBkb2N1bWVudHMuIE9ubHkgc2hhcmluZyBzZXR0aW5ncyBvZiBhdHRhY2hlZCBBcHBzIFNjcmlwdCBwcm9qZWN0cyB3aWxsIGJlIHVwZGF0ZWQuPC9zdHJvbmc-PC9wPg0KDQo8cD5BIENTViBmaWxlIGF0dGFjaGVkIHRvIHRoaXMgbWVzc2FnZSBsaXN0cyBhbGwgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2hlcmUgeW91JiMzOTtyZSB0aGUgb3duZXIgYW5kIHdob3NlIHNoYXJpbmcgc2V0dGluZ3Mgd2lsbCBjaGFuZ2UgYXMgYSByZXN1bHQgb2YgdGhpcyBtaWdyYXRpb24uIFBsZWFzZSByZXZpZXcgdGhlc2UgZG9jdW1lbnRzIGFuZCBjb25maXJtIHRoYXQgdGhlaXIgc2hhcmluZyBzZXR0aW5ncyBhcmUgYWxzbyBhcHByb3ByaWF0ZSBmb3IgdGhlaXIgYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMuPC9wPg0KDQo8cD5JZiBjaGFuZ2VzIGFyZSByZXF1aXJlZCwgZm9yIGVhY2ggZG9jdW1lbnQgd2hlcmUgc2V0dGluZ3MgbmVlZCB0byBiZSBjaGFuZ2VkLCB1c2Ugb25lIG9mIHRoZXNlIG1ldGhvZHM6PC9wPg0KDQo8dWw-DQogIDxsaT5JbiBEb2NzIG9yIFNoZWV0cywgY2xpY2sgPHN0cm9uZz5TaGFyZTwvc3Ryb25nPi48L2xpPg0KICA8bGk-SW4gRm9ybXMsIGNsaWNrIDxzdHJvbmc-QWRkIENvbGxhYm9yYXRvcjwvc3Ryb25nPi48L2xpPg0KICA8bGk-SW4gR29vZ2xlIERyaXZlLCBjbGljayA8c3Ryb25nPlNoYXJlPC9zdHJvbmc-LjwvbGk-DQo8L3VsPg0KDQo8cD5TaW5jZXJlbHksPC9wPg0KDQo8cD5UaGUgQXBwcyBTY3JpcHQgVGVhbTwvcD4NCjwhLS0gRmluYWxseSwgaW5jbHVkZSB0aGUgc3RhbmRhcmQgZm9vdGVyLiBUaGlzIGFsc28gZW5kcyB0aGUgYm9keSAtLT4NCjwhLS0gI2luY2x1ZGUgJy9na21zaWQvNjMyOTg2MycgLS0-DQoNCjwhLS0gRmluYWxseSwgaW5jbHVkZSB0aGUgVXNlciBzdGFuZGFyZCBmb290ZXIuIFRoaXMgYWxzbyBlbmRzIHRoZSBib2R5IC0tPg0KPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMHB4OyBjb2xvcjogIzY2NjY2NjsgcGFkZGluZy10b3A6IDhweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6ICNkY2RjZGM7IGJvcmRlci10b3Atd2lkdGg6IDFweCI-DQogIDxwPsKpIDIwMTcgIEdvb2dsZSBJbmMuIDE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzPC9wPg0KDQogIDxwPjxpPllvdSBoYXZlIHJlY2VpdmVkIHRoaXMgdXBkYXRlIGFzIGEgRyBTdWl0ZSBzZXJ2aWNlIGFubm91bmNlbWVudC48L2k-PC9wPg0KPC9kaXY-DQo8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjMiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hcHBzZXJ2ZS9ta3QvaW1nL2xUUERhTG1XbHg1blNpbTF6OWp3RG1vTVYzSjRvMVZfcDhjPS5naWYiPg=="
    }
  }
]
"body": {
      "size": 3112,
      "data": "PCEtLSBUaGlzIGN...<trimmed for succintness>..cDhjPS5naWYiPg=="
    }
public string GetBodyWithRecursion(MessagePart p, string mimeType)
{
   string Body = "";

        if (p.parts.Parts != null)
        {
            foreach (MessagePart part in p.Parts)
            {
                Body = $"{Body} {GetBodyWithRecursion(part, mimeType)}";
            }
        }
        else if (p.Body.Data != null && p.Body.AttachmentId == null && p.MimeType == mimeType)
        {
            Body = methodToConvertFrom64Url(p.Body.Data);


           }

            return Body;
}
因此,内容传输编码是“可打印的报价”

当我获取其他电子邮件时,得到的也是相同的加密/编码结果。
不确定如何解码身体中的数据(我在文档中也找不到任何关于它的内容)。

我构建了一些东西来处理这样的问题:

[
  {
    "partId": "0.0",
    "mimeType": "text/plain",
    "filename": "",
    "headers": [
      {
        "name": "Content-Type",
        "value": "text/plain; charset=\"UTF-8\"; format=flowed; delsp=yes"
      },
      {
        "name": "Content-Transfer-Encoding",
        "value": "base64"
      }
    ],
    "body": {
      "size": 1628,
      "data": "R29vZ2xlIGxvZ28NCg0KSGVsbG8gQXBwcyBTY3JpcHQgdXNlciwNCg0KVGhpcyBub3RpZmljYXRpb24gaXMgdG8gYWxlcnQgeW91IG9mIGFuIHVwZGF0ZSB0byBvbmUgb3IgbW9yZSBvZiB5b3VyIEFwcHMgIA0KU2NyaXB0IHByb2plY3RzIHRoYXQgYXJlIGF0dGFjaGVkIHRvIERvY3MsIFNoZWV0cywgYW5kIEZvcm1zIGRvY3VtZW50cyB3aXRoICANCnNjcmlwdCBzaGFyaW5nIHNldHRpbmdzIHRoYXQgZGlmZmVyIGZyb20gdGhvc2Ugb2YgdGhlIGRvY3VtZW50Lg0KDQpTdGFydGluZyBvbiBvciBhZnRlciBKdWx5IDZ0aCwgMjAxNywgdGhvc2Ugc2NyaXB0IHNoYXJpbmcgc2V0dGluZ3Mgd2lsbCBiZSAgDQp1cGRhdGVkIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBkb2N1bWVudHMgdG8gd2hpY2ggdGhleSdyZSBhdHRhY2hlZC4NCg0KVGhlIHNoYXJpbmcgc2V0dGluZ3MgdXBkYXRlIHNpbXBsaWZpZXMgc2hhcmluZyBzZXR0aW5ncyBmb3IgZG9jdW1lbnRzIHdpdGggIA0KYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMgYnkgdHJlYXRpbmcgdGhlbSBsaWtlIGEgc2luZ2xlIGRvY3VtZW50Lg0KDQpBcyBhIHJlc3VsdCBvZiB0aGUgc2hhcmluZyBzZXR0aW5ncyB1cGRhdGUsIGFuZCBhY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50ICANCmFjY2VzcyBsZXZlbCwgc29tZSB1c2VycyBtYXk6DQoNCg0KR2FpbiBvciBsb3NlIGFjY2VzcyB0byBhZmZlY3RlZCBwcm9qZWN0cw0KQ2hhbmdlIHRoZWlyIGFjY2VzcyBsZXZlbHMgKGZvciBleGFtcGxlLCBvd25lciwgZWRpdG9yLCByZWFkZXIpDQoNClRoaXMgY2hhbmdlIHdpbGwgbm90IGFmZmVjdCBzaGFyaW5nIHNldHRpbmdzIGZvciB0aGUgZG9jdW1lbnRzLiBPbmx5ICANCnNoYXJpbmcgc2V0dGluZ3Mgb2YgYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2lsbCBiZSB1cGRhdGVkLg0KDQpBIENTViBmaWxlIGF0dGFjaGVkIHRvIHRoaXMgbWVzc2FnZSBsaXN0cyBhbGwgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2hlcmUgIA0KeW91J3JlIHRoZSBvd25lciBhbmQgd2hvc2Ugc2hhcmluZyBzZXR0aW5ncyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdCBvZiB0aGlzICANCm1pZ3JhdGlvbi4gUGxlYXNlIHJldmlldyB0aGVzZSBkb2N1bWVudHMgYW5kIGNvbmZpcm0gdGhhdCB0aGVpciBzaGFyaW5nICANCnNldHRpbmdzIGFyZSBhbHNvIGFwcHJvcHJpYXRlIGZvciB0aGVpciBhdHRhY2hlZCBBcHBzIFNjcmlwdCBwcm9qZWN0cy4NCg0KSWYgY2hhbmdlcyBhcmUgcmVxdWlyZWQsIGZvciBlYWNoIGRvY3VtZW50IHdoZXJlIHNldHRpbmdzIG5lZWQgdG8gYmUgIA0KY2hhbmdlZCwgdXNlIG9uZSBvZiB0aGVzZSBtZXRob2RzOg0KDQoNCkluIERvY3Mgb3IgU2hlZXRzLCBjbGljayBTaGFyZS4NCkluIEZvcm1zLCBjbGljayBBZGQgQ29sbGFib3JhdG9yLg0KSW4gR29vZ2xlIERyaXZlLCBjbGljayBTaGFyZS4NCg0KU2luY2VyZWx5LA0KDQpUaGUgQXBwcyBTY3JpcHQgVGVhbQ0KDQoNCsKpIDIwMTcgR29vZ2xlIEluYy4gMTYwMCBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0EgOTQwNDMNCg0KWW91IGhhdmUgcmVjZWl2ZWQgdGhpcyB1cGRhdGUgYXMgYSBHIFN1aXRlIHNlcnZpY2UgYW5ub3VuY2VtZW50Lg0KDQo="
    }
  },
  {
    "partId": "0.1",
    "mimeType": "text/html",
    "filename": "",
    "headers": [
      {
        "name": "Content-Type",
        "value": "text/html; charset=\"UTF-8\""
      },
      {
        "name": "Content-Transfer-Encoding",
        "value": "quoted-printable"
      }
    ],
    "body": {
      "size": 3112,
      "data": "PCEtLSBUaGlzIGNvbnRhaW5zIENTUyBpbmZvLCBzdGFydHMgdGhlIGJvZHksIGFuZCBpbnNlcnRzIHRoZSBHb29nbGUgbG9nbyBoZWFkZXIgLS0-DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMwMDAwMDA7Ij4gPC9zcGFuPg0KPGRpdiBzdHlsZT0icGFkZGluZy10b3A6IDIycHg7IHBhZGRpbmctYm90dG9tOiA4cHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiAjZGNkY2RjOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHgiIHdpZHRoPSIxMDAlIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMwMDAwMDA7Ij48aW1nIGFsdD0iR29vZ2xlIGxvZ28iIGJvcmRlcj0iMCIgc3JjPSJodHRwOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzF4L2dvb2dsZWxvZ29fY29sb3JfMTIweDQ4ZHAucG5nIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IiB0aXRsZT0iR29vZ2xlIiB3aWR0aD0iMTIwIj4gPC9zcGFuPjwvZGl2Pg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjMDAwMDAwOyI-IDwhLS0gVGhpcyBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdWJqZWN0IC0tPiA8L3NwYW4-DQoNCg0KPCEtLSBQbGVhc2UgSU5TRVJUIHRoZSByZWxldmFudCBDdXN0b21lciBDb21tIGdrbXMgc25pcHBldCAtLT4NCjxwPkhlbGxvIEFwcHMgU2NyaXB0IHVzZXIsPC9wPg0KDQo8cD5UaGlzIG5vdGlmaWNhdGlvbiBpcyB0byBhbGVydCB5b3Ugb2YgYW4gdXBkYXRlIHRvIG9uZSBvciBtb3JlIG9mIHlvdXIgQXBwcyBTY3JpcHQgcHJvamVjdHMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gRG9jcywgU2hlZXRzLCBhbmQgRm9ybXMgZG9jdW1lbnRzIHdpdGggc2NyaXB0IHNoYXJpbmcgc2V0dGluZ3MgdGhhdCBkaWZmZXIgZnJvbSB0aG9zZSBvZiB0aGUgZG9jdW1lbnQuPC9wPg0KDQo8cD48c3Ryb25nPlN0YXJ0aW5nIG9uIG9yIGFmdGVyIEp1bHkgNnRoLCAyMDE3PC9zdHJvbmc-LCB0aG9zZSBzY3JpcHQgc2hhcmluZyBzZXR0aW5ncyB3aWxsIGJlIHVwZGF0ZWQgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIGRvY3VtZW50cyB0byB3aGljaCB0aGV5JiMzOTtyZSBhdHRhY2hlZC48L3A-DQoNCjxwPlRoZSBzaGFyaW5nIHNldHRpbmdzIHVwZGF0ZSBzaW1wbGlmaWVzIHNoYXJpbmcgc2V0dGluZ3MgZm9yIGRvY3VtZW50cyB3aXRoIGF0dGFjaGVkIEFwcHMgU2NyaXB0IHByb2plY3RzIGJ5IHRyZWF0aW5nIHRoZW0gbGlrZSBhIHNpbmdsZSBkb2N1bWVudC48L3A-DQoNCjxwPkFzIGEgcmVzdWx0IG9mIHRoZSBzaGFyaW5nIHNldHRpbmdzIHVwZGF0ZSwgYW5kIGFjY29yZGluZyB0byB0aGUgZG9jdW1lbnQgYWNjZXNzIGxldmVsLCBzb21lIHVzZXJzIG1heTo8L3A-DQoNCjx1bD4NCiAgPGxpPkdhaW4gb3IgbG9zZSBhY2Nlc3MgdG8gYWZmZWN0ZWQgcHJvamVjdHM8L2xpPg0KICA8bGk-Q2hhbmdlIHRoZWlyIGFjY2VzcyBsZXZlbHMgKGZvciBleGFtcGxlLCBvd25lciwgZWRpdG9yLCByZWFkZXIpPC9saT4NCjwvdWw-DQoNCjxwPjxzdHJvbmc-VGhpcyBjaGFuZ2Ugd2lsbCBub3QgYWZmZWN0IHNoYXJpbmcgc2V0dGluZ3MgZm9yIHRoZSBkb2N1bWVudHMuIE9ubHkgc2hhcmluZyBzZXR0aW5ncyBvZiBhdHRhY2hlZCBBcHBzIFNjcmlwdCBwcm9qZWN0cyB3aWxsIGJlIHVwZGF0ZWQuPC9zdHJvbmc-PC9wPg0KDQo8cD5BIENTViBmaWxlIGF0dGFjaGVkIHRvIHRoaXMgbWVzc2FnZSBsaXN0cyBhbGwgQXBwcyBTY3JpcHQgcHJvamVjdHMgd2hlcmUgeW91JiMzOTtyZSB0aGUgb3duZXIgYW5kIHdob3NlIHNoYXJpbmcgc2V0dGluZ3Mgd2lsbCBjaGFuZ2UgYXMgYSByZXN1bHQgb2YgdGhpcyBtaWdyYXRpb24uIFBsZWFzZSByZXZpZXcgdGhlc2UgZG9jdW1lbnRzIGFuZCBjb25maXJtIHRoYXQgdGhlaXIgc2hhcmluZyBzZXR0aW5ncyBhcmUgYWxzbyBhcHByb3ByaWF0ZSBmb3IgdGhlaXIgYXR0YWNoZWQgQXBwcyBTY3JpcHQgcHJvamVjdHMuPC9wPg0KDQo8cD5JZiBjaGFuZ2VzIGFyZSByZXF1aXJlZCwgZm9yIGVhY2ggZG9jdW1lbnQgd2hlcmUgc2V0dGluZ3MgbmVlZCB0byBiZSBjaGFuZ2VkLCB1c2Ugb25lIG9mIHRoZXNlIG1ldGhvZHM6PC9wPg0KDQo8dWw-DQogIDxsaT5JbiBEb2NzIG9yIFNoZWV0cywgY2xpY2sgPHN0cm9uZz5TaGFyZTwvc3Ryb25nPi48L2xpPg0KICA8bGk-SW4gRm9ybXMsIGNsaWNrIDxzdHJvbmc-QWRkIENvbGxhYm9yYXRvcjwvc3Ryb25nPi48L2xpPg0KICA8bGk-SW4gR29vZ2xlIERyaXZlLCBjbGljayA8c3Ryb25nPlNoYXJlPC9zdHJvbmc-LjwvbGk-DQo8L3VsPg0KDQo8cD5TaW5jZXJlbHksPC9wPg0KDQo8cD5UaGUgQXBwcyBTY3JpcHQgVGVhbTwvcD4NCjwhLS0gRmluYWxseSwgaW5jbHVkZSB0aGUgc3RhbmRhcmQgZm9vdGVyLiBUaGlzIGFsc28gZW5kcyB0aGUgYm9keSAtLT4NCjwhLS0gI2luY2x1ZGUgJy9na21zaWQvNjMyOTg2MycgLS0-DQoNCjwhLS0gRmluYWxseSwgaW5jbHVkZSB0aGUgVXNlciBzdGFuZGFyZCBmb290ZXIuIFRoaXMgYWxzbyBlbmRzIHRoZSBib2R5IC0tPg0KPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMHB4OyBjb2xvcjogIzY2NjY2NjsgcGFkZGluZy10b3A6IDhweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6ICNkY2RjZGM7IGJvcmRlci10b3Atd2lkdGg6IDFweCI-DQogIDxwPsKpIDIwMTcgIEdvb2dsZSBJbmMuIDE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzPC9wPg0KDQogIDxwPjxpPllvdSBoYXZlIHJlY2VpdmVkIHRoaXMgdXBkYXRlIGFzIGEgRyBTdWl0ZSBzZXJ2aWNlIGFubm91bmNlbWVudC48L2k-PC9wPg0KPC9kaXY-DQo8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjMiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hcHBzZXJ2ZS9ta3QvaW1nL2xUUERhTG1XbHg1blNpbTF6OWp3RG1vTVYzSjRvMVZfcDhjPS5naWYiPg=="
    }
  }
]
"body": {
      "size": 3112,
      "data": "PCEtLSBUaGlzIGN...<trimmed for succintness>..cDhjPS5naWYiPg=="
    }
public string GetBodyWithRecursion(MessagePart p, string mimeType)
{
   string Body = "";

        if (p.parts.Parts != null)
        {
            foreach (MessagePart part in p.Parts)
            {
                Body = $"{Body} {GetBodyWithRecursion(part, mimeType)}";
            }
        }
        else if (p.Body.Data != null && p.Body.AttachmentId == null && p.MimeType == mimeType)
        {
            Body = methodToConvertFrom64Url(p.Body.Data);


           }

            return Body;
}
我首先用text/html调用它,如果它是空的,那么用text/plain。如果HTML不可用,则仅显示文本

希望这有帮助, 迈克