我怎么能读/得到每条消息正文文本内容,也是每条消息的标题和从和到



我的意思是得到一个List,它将像这样构建:

from to message

例如,在第一个索引的List中,我将看到:

来自:Daniel To: Jhon留言:hello world

在这段代码中,我现在使用的所有我得到的结果变量是1445条消息,这是奇怪的在我的gmail.com帐户,我看到我有374封电子邮件在收件箱,所以为什么变量结果返回所有的时间1445 ?我试图将JSON文件更改为我的gmail帐户,然后更改为我的朋友gmail帐户,在这两种情况下它都返回1445。我怎样才能使它根据JASON文件中的gmail帐户返回电子邮件的数量?

在结果列表变量中,例如在索引0上,当我站在鼠标上时,我所能得到的是消息Id和消息ThreadId,但我如何获得From和To以及消息主体/文本?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Google.Apis.Gmail.v1.Data;
using Google.Apis.Gmail.v1;
using Google.Apis.Gmail;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Upload;
using System.Threading;
using System.IO;
using Google.Apis.Util.Store;
namespace Google_Gmail
{
    public partial class Form1 : Form
    {
        static string[] Scopes = { GmailService.Scope.GmailReadonly };
        static string ApplicationName = "Youtube Uploader";
        public Form1()
        {
            InitializeComponent();
            ListMessages(GmailServices(), "me", "");

        }
        private GmailService GmailServices()
        {
            UserCredential credential;
            using (var stream =
                new FileStream(@"C:jason fileclient_secrets.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials");
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }
            // Create Gmail API service.
            var service = new GmailService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,
            });
            return service;
        }
        public static List<Google.Apis.Gmail.v1.Data.Message> ListMessages(GmailService service, String userId, String query)
        {
            List<Google.Apis.Gmail.v1.Data.Message> result = new List<Google.Apis.Gmail.v1.Data.Message>();
            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            request.Q = query;
            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    result.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));
            return result;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
}

在我的gmail帐户中,我看到我的收件箱中有374封电子邮件变量结果一直返回1445?

Users.Messages.List(userId)将返回您帐户中所有消息的Id,而不仅仅是带有inbox标签的消息。试试查询Q = "in:INBOX"

在结果列表变量内部,例如在索引0上,当i站着,鼠标在上面,我能得到的是消息Id和消息ThreadId,但我如何获得从和到和消息身体/文本吗?

Messages.List只会给你消息的Id和它所属的线程。您需要使用Messages。获取每个Id的请求以获取实际消息。

然后,您必须查看消息的From -header, To -header和Body以获得所需的信息。

相关内容

  • 没有找到相关文章

最新更新