public void login() { result.credential = GoogleWebAuthorizationBroker.AuthorizeAsync( new ClientSecrets { ClientId = "316924129116-efm2iopj3strkrpbjkf7oeqmptn8ph27.apps.googleusercontent.com", ClientSecret = "MAxnno9YGxGTdtNiEqItt8-n" }, new[] { "https://mail.google.com/ email" }, "Tiramisu", CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result; if (result.credential != null) { result.service = new PlusService(new BaseClientService.Initializer() { HttpClientInitializer = result.credential, ApplicationName = "Google mail", }); Google.Apis.Plus.v1.Data.Person me = result.service.People.Get("me").Execute(); Google.Apis.Plus.v1.Data.Person.EmailsData myAccountEmail = me.Emails.Where(a => a.Type == "account").FirstOrDefault(); imapClient = new MailKit.Net.Imap.ImapClient(); var credentials = new NetworkCredential(myAccountEmail.Value, result.credential.Token.AccessToken); imapClient.Connect("imap.gmail.com", 993, true, CancellationToken.None); imapClient.Authenticate(credentials, CancellationToken.None); } }
public static GAAutentication Autenticate(string _client_id, string _client_secret) { GAAutentication result = new GAAutentication(); try { UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = _client_id, ClientSecret = _client_secret }, new[] { "https://mail.google.com/ email" }, "Lindau", CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result; } catch (Exception ex) { int i = 1; } if (result.credential != null) { result.service = new PlusService(new BaseClientService.Initializer() { HttpClientInitializer = result.credential, ApplicationName = "Google mail", }); Google.Apis.Plus.v1.Data.Person me = result.service.People.Get("me").Execute(); Google.Apis.Plus.v1.Data.Person.EmailsData myAccountEmail = me.Emails.Where(a => a.Type == "account").FirstOrDefault(); // Connect to the IMAP server. The 'true' parameter specifies to use SSL // which is important (for Gmail at least) ImapClient ic = new ImapClient("imap.gmail.com", myAccountEmail.Value, result.credential.Token.AccessToken, ImapClient.AuthMethods.SaslOAuth, 993, true); // Select a mailbox. Case-insensitive ic.SelectMailbox("INBOX"); Console.WriteLine(ic.GetMessageCount()); // Get the first *11* messages. 0 is the first message; // and it also includes the 10th message, which is really the eleventh ;) // MailMessage represents, well, a message in your mailbox MailMessage[] mm = ic.GetMessages(0, 10); foreach (MailMessage m in mm) { Console.WriteLine(m.Subject + " " + m.Date.ToString()); } // Probably wiser to use a using statement ic.Dispose(); } return(result); }
public List <Expenses> GetMails(string _client_id, string _client_secret) { CustomMailService result = new CustomMailService(); List <Expenses> emailModels = new List <Expenses>(); //If you want to test new gmail account, //Go to the browser, log off, log in with the new account, //and then change this 'tmpUser' var tmpUser = "******"; try { result.credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = _client_id, ClientSecret = _client_secret }, new[] { "https://mail.google.com/ email" }, tmpUser, CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result; } catch (Exception ex) { } if (result.credential != null) { result.service = new PlusService(new BaseClientService.Initializer() { HttpClientInitializer = result.credential, ApplicationName = "Google mail", }); Google.Apis.Plus.v1.Data.Person me = result.service.People.Get("me").Execute(); Google.Apis.Plus.v1.Data.Person.EmailsData myAccountEmail = me.Emails.Where(a => a.Type == "account").FirstOrDefault(); // Connect to the IMAP server. The 'true' parameter specifies to use SSL // which is important (for Gmail at least) ImapClient imapClient = new ImapClient("imap.gmail.com", myAccountEmail.Value, result.credential.Token.AccessToken, ImapClient.AuthMethods.SaslOAuth, 993, true); var mailBox = imapClient.SelectMailbox("FNB"); Console.WriteLine("ListMailboxes"); Console.WriteLine(mailBox.Name); var original = Console.ForegroundColor; var examine = imapClient.Examine(mailBox.Name); if (examine != null) { Console.WriteLine(" - Count: " + imapClient.GetMessageCount()); //Get One Email per folder MailMessage[] mm = imapClient.GetMessages(0, imapClient.GetMessageCount()); Console.ForegroundColor = ConsoleColor.Blue; var counter = 0; foreach (MailMessage m in mm) { if (m.Date > DateTime.Now.AddDays(-30)) { if (m.Subject.Contains("reserved for purchase") || m.Subject.Contains("paid from cheq")) { var substring = m.Subject.Substring(7, 10); var number = Regex.Split(substring, @"[^0-9\.]+")[1]; var amount = Convert.ToDouble(number, CultureInfo.InvariantCulture); var email = new Expenses() { PaymentType = PaymentType.Bill, Name = m.Subject, Amount = amount, Id = m.MessageID, PaymentDate = m.Date }; if (m.Subject.Contains("paid from cheq")) { email.PaymentType = PaymentType.Buy; } emailModels.Add(email); counter++; } } } } else { } imapClient.Dispose(); } return(emailModels); }
public static GAAutentication Autenticate(string _client_id, string _client_secret) { GAAutentication result = new GAAutentication(); //If you want to test new gmail account, //Go to the browser, log off, log in with the new account, //and then change this 'tmpUser' var tmpUser = "******"; try { result.credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = _client_id, ClientSecret = _client_secret }, new[] { "https://mail.google.com/ email" }, tmpUser, CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result; } catch (Exception ex) { } if (result.credential != null) { result.service = new PlusService(new BaseClientService.Initializer() { HttpClientInitializer = result.credential, ApplicationName = "Google mail", }); Google.Apis.Plus.v1.Data.Person me = result.service.People.Get("me").Execute(); Google.Apis.Plus.v1.Data.Person.EmailsData myAccountEmail = me.Emails.Where(a => a.Type == "account").FirstOrDefault(); // Connect to the IMAP server. The 'true' parameter specifies to use SSL // which is important (for Gmail at least) ImapClient ic = new ImapClient("imap.gmail.com", myAccountEmail.Value, result.credential.Token.AccessToken, ImapClient.AuthMethods.SaslOAuth, 993, true); var listOfMainboxes = ic.ListMailboxes(string.Empty, "*"); Console.WriteLine("ListMailboxes"); foreach (Mailbox mb in listOfMainboxes) { Console.WriteLine(mb.Name); var original = Console.ForegroundColor; var examine = ic.Examine(mb.Name); if (examine != null) { //Count? ic.SelectMailbox(mb.Name); Console.WriteLine(" - Count: " + ic.GetMessageCount()); //Get One Email per folder MailMessage[] mm = ic.GetMessages(0, 0); Console.ForegroundColor = ConsoleColor.Blue; foreach (MailMessage m in mm) { Console.WriteLine(" - " + m.Subject + " " + m.Date); } Console.ForegroundColor = original; } else { Console.ForegroundColor = ConsoleColor.Red; Console.Error.WriteLine("* Folder doesn't exists: " + mb.Name); Console.ForegroundColor = original; } } /* * // Select a mailbox. Case-insensitive * ic.SelectMailbox("INBOX"); * * Console.WriteLine(ic.GetMessageCount()); * // Get the first *11* messages. 0 is the first message; * // and it also includes the 10th message, which is really the eleventh ;) * // MailMessage represents, well, a message in your mailbox * MailMessage[] mm = ic.GetMessages(0, 10); * foreach (MailMessage m in mm) * { * Console.WriteLine(m.Subject + " " + m.Date.ToString()); * } * // Probably wiser to use a using statement */ ic.Dispose(); } return(result); }