簡體   English   中英

如何使用Gmail API閱讀整個郵件

[英]How can I read the whole message using Gmail API

我需要身體中的所有文本來接收電子郵件。

我試過了:

var mesage = GetMessage(service, "me", 1);
Console.WriteLine(mesage.Snippet);

public static Message GetMessage(GmailService service, String userId, String messageId)
{
    try
    {
        return service.Users.Messages.Get(userId, messageId).Execute();
    }
    catch (Exception e)
    {
        Console.WriteLine("An error occurred: " + e.Message);
    }

    return null;
}

但我正在獲取截圖中顯示的片段。

收到的郵件給我: 在此輸入圖像描述 結果:

在此輸入圖像描述

查看文檔Message.Snippet僅返回消息文本的一小部分。 您應該使用Message.Raw ,或者更恰當地使用Message.Payload.Body

var message = GetMessage(service, "me", 1);
Console.WriteLine(message.Raw);
Console.WriteLine(message.Payload.Body.Data);

您應該嘗試兩種方式,看看哪種方法最適合您要做的事情。 要獲取message.Raw您需要傳遞一個參數,如文檔中所述:

當提供format = RAW參數時,在messages.get和drafts.get響應中返回。

如果這些都不起作用,您可以嘗試迭代消息的各個部分以查找您的數據:

foreach (var part in message.Payload.Parts)
{
    byte[] data = Convert.FromBase64String(part.Body.Data);
    string decodedString = Encoding.UTF8.GetString(data);
    Console.WriteLine(decodedString);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM