예제 #1
0
        public ActionResult LettersList(ViewModels.IndexViewModel IndexViewModel)
        {
            WebClient   objclient = new WebClient();
            string      response  = null;
            XmlDocument xdoc      = new XmlDocument();
            List <LettersListViewModel> emailsList = new List <LettersListViewModel>();

            objclient.Credentials = new NetworkCredential(IndexViewModel.Login, IndexViewModel.Password);
            response = Encoding.UTF8.GetString(objclient.DownloadData("https://mail.google.com/mail/feed/atom"));  //"https://www.googleapis.com/gmail/v1/users/"+ IndexViewModel.Login +"/labels"
            response = response.Replace("<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\">", "<feed>");
            xdoc.LoadXml(response);

            foreach (XmlNode node1 in xdoc.SelectNodes("feed/entry"))
            {
                LettersListViewModel email = new LettersListViewModel
                {
                    From    = node1.SelectSingleNode("author/email").InnerText,
                    Title   = node1.SelectSingleNode("title").InnerText,
                    Summary = node1.SelectSingleNode("summary").InnerText
                };
                emailsList.Add(email);
            }
            return(View(emailsList));
        }
예제 #2
0
        public ActionResult LettersList(String userId = "*****@*****.**" /*, String query*/)
        {
            LettersListViewModel LettersListViewModel = new LettersListViewModel();

            LettersListViewModel.Mails = new List <Message>();
            List <Message> result = new List <Message>();


            UserCredential credential;

            string[] Scopes = { GmailService.Scope.GmailReadonly };
            using (var stream =
                       new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/gmail-dotnet-quickstart.json");

                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.
            GmailService service = new GmailService(new BaseClientService.Initializer() /////
            {
                HttpClientInitializer = credential
                                        //   ApplicationName = ApplicationName,
            });


            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            //request.Q = query;

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    LettersListViewModel.Mails.AddRange(response.Messages);
                    //result.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));
            return(View(LettersListViewModel));



            //Mail mail;
            //WebClient objclient = new WebClient();
            //string response = null;
            //XmlDocument xdoc = new XmlDocument();
            //LettersListViewModel LettersListViewModel = new LettersListViewModel();
            //LettersListViewModel.Mails = new List<Mail>();

            //objclient.Credentials = new NetworkCredential(IndexViewModel.Login, IndexViewModel.Password);
            //response = Encoding.UTF8.GetString(objclient.DownloadData("https://mail.google.com/mail/feed/atom"));
            //response = response.Replace("<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\">", "<feed>");
            //xdoc.LoadXml(response);

            //foreach (XmlNode node1 in xdoc.SelectNodes("feed/entry"))
            //{
            //    mail = new Mail();
            //    mail.From = node1.SelectSingleNode("author/email").InnerText;
            //    mail.Title = node1.SelectSingleNode("title").InnerText;
            //    mail.Summary = node1.SelectSingleNode("summary").InnerText;
            //    LettersListViewModel.Mails.Add(mail);
            //}
            //return View(LettersListViewModel);
        }