Как указано в параметре формата здесь [1], вы можете извлечь только полные данные сообщения электронной почты в поле полезной нагрузки (если вы используете «полный» формат) или в необработанном поле (если вы используете «сырой» формат),
Если вы используете необработанный формат, вы можете получить полные данные сообщения электронной почты с содержимым тела в виде строки в кодировке base64url, например: Emailobj.Raw
[2].
Если вы используете полныйформат, вы можете получить объект с полными данными сообщения электронной почты, включая тело, как это -> Emailobj.Payload
, чтобы получить список заголовков -> Emailobj.Payload.Headers
, чтобы получить объект тела -> Emailobj.Payload.Body
.Проверьте часть полезной нагрузки [2] и как получить доступ к ее атрибутам [3].
Вы также можете использовать функцию «Попробуйте этот API» здесь [1], чтобы проверить структуру объекта Message [2]вы получаете, когда запускаете запрос.
Об ошибке, которая появляется при попытке «сохранить электронную почту локально», в зависимости от того, что вы подразумеваете под этим, у меня есть 2 ответа:
ЕслиВы хотите просто сохранить объект Message [2] в переменной Emailobj:
1) Ваш Emailobj является ссылкой на класс электронной почты (который, по-видимому, является вашим личным классом), поэтому вы не можете сохранитьКласс объекта сообщения из библиотеки Google в этой переменной, потому что у этого класса нет вашего личного класса в качестве родительского класса.Как указано в документации, класс Message наследуется только от интерфейса IDirectResponseSchema [2].Дальнейшая информация о наследовании здесь [4].
2) Если вы пытаетесь отправить электронное письмо на сервер / приложение:
Вы должны проверить, как целевой объект, в котором вы хотите хранить электронную почту, ожидает полные данные электронной почты, либозакодированная строка со всеми данными, объект в формате Json с определенной структурой заголовков и тела, BLOB-объекты и т. д.
EDIT
По мере необходимости отправлятьэто как EML, вы должны найти способ создать объект blob с «message / rfc2822» в качестве типа содержимого (mimeType) и необработанной строкой в качестве данных, которые вы получили из опции необработанного формата Emailobj.Raw
.Может быть, это поможет [5].
[1] https://developers.google.com/gmail/api/v1/reference/users/messages/get
[2] https://developers.google.com/resources/api-libraries/documentation/gmail/v1/csharp/latest/classGoogle_1_1Apis_1_1Gmail_1_1v1_1_1Data_1_1Message.html
[3] https://developers.google.com/resources/api-libraries/documentation/gmail/v1/csharp/latest/classGoogle_1_1Apis_1_1Gmail_1_1v1_1_1Data_1_1MessagePart.html
[4] https://www.codeproject.com/Articles/1445/Introduction-to-inheritance-polymorphism-in-C
[5] https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet?tabs=linux