Я пишу Windows Service, которая должна принимать электронную почту из задач Gmail
Вот мой метод тестирования:
UserCredential credential;
UserCredential credentialGmail;
using (var stream =
new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
string credPath = "token.json";
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
}
using (var stream =
new FileStream("credentialsGmail.json", FileMode.Open, FileAccess.Read))
{
string credPath = "tokenGmail.json";
credentialGmail = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
ScopesGmail,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
}
// Create Google Tasks API service.
var service = new TasksService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
var service2 = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credentialGmail,
ApplicationName = ApplicationName,
});
// Define parameters of request.
TasklistsResource.ListRequest listRequest = service.Tasklists.List();
listRequest.MaxResults = 1000;
// List task lists.
IEnumerable<TaskList> taskLists = listRequest.Execute().Items.Where(p => p.Title == "Test");
if (taskLists != null && taskLists.Count() > 0)
{
foreach (var taskList in taskLists)
{
TasksResource.ListRequest tasksListRequest = service.Tasks.List(taskList.Id);
var tasks = tasksListRequest.Execute().Items;
if (tasks != null)
{
foreach (var item in tasks)
{
if ((item.Links != null)
&& (item.Links.Count == 1)
&& (item.Links[0].Type == "email"))
{
var uri = item.Links[0].Link.Split('/').Last();
var getEmailRequest = service2.Users.Messages.Get("me", uri);
var getEmailResponse = getEmailRequest.Execute();
}
}
}
}
}
Этопоиск задач, которые добавили адрес электронной почты в список «Тест».После того, как он находит правильное задание, он берет письмо от задания.Для этого я использую Users.Messages.Get .У меня есть почти вся информация по электронной почте в ответ.Но я не смог найти HTML письма и вложения.У меня есть несколько вопросов:
- Как я могу получить HTML сообщения от API GMail (у меня есть текст во фрагменте, также я проверил Payload.Headers, но я там не нашел)?
- Как мне установить статус задачи на Завершено?