public static List <MailMessage> GetFilteredMessages(SearchCondition condition) { IEnumerable <uint> messageIds = client.Search(SearchCondition.All()); IEnumerable <MailMessage> messages = client.GetMessages(messageIds); return(messages.ToList()); }
public EmailHeaderResult GetInboxEmailHeaders(int page, int pageSize) { if (!this.IsCorrect) { throw new EmailException("Bad username or password"); } try { using (var client = this.CreateImapClient()) { var uids = client.Search(SearchCondition.All(), "inbox").OrderByDescending(u => u).ToList(); var total = uids.Count; uids = uids.Skip((page - 1) * pageSize).Take(pageSize).ToList(); var list = new List <EmailHeader>(); foreach (var uid in uids) { var msg = client.GetMessage(uid, FetchOptions.HeadersOnly, mailbox: "inbox"); list.Add(new EmailHeader(msg, uid)); } return(new EmailHeaderResult { Mails = list, Page = page, PageSize = pageSize, Total = total }); } } catch (InvalidCredentialsException) { throw new EmailException("Wrong username or password"); } }
/// <summary> /// SentSince = Date = DateFrom /// SentBefore = Date + 1 = DateTO /// </summary> /// <returns></returns> public SearchCondition SetSearchConditions() { SearchCondition result = SearchCondition.All(); if (this.SearchByDateRange) { result = result.And(SearchCondition.SentBefore(new DateTime(DateTo.Year, DateTo.Month, DateTo.Day).AddDays(1)) .And(SearchCondition.SentSince(new DateTime(DateFrom.Year, DateFrom.Month, DateFrom.Day)))); } if (this.Unread) { result = result.And(SearchCondition.Unseen()); } if (!string.IsNullOrEmpty(this.Sender)) { result = result.And(SearchCondition.From(this.Sender)); } if (!string.IsNullOrEmpty(this.Subject)) { result = result.And(SearchCondition.Subject(this.Subject)); } return(result); }
public void EmptyInbox() { // delete specific emails using (ImapClient Client = new ImapClient("imap.gmail.com", 993, "*****@*****.**", "aq1sw2de3fr4", AuthMethod.Login, true)) { IEnumerable <uint> uids = Client.Search(SearchCondition.All()); foreach (uint uid in uids) { MailMessage msg = Client.GetMessage(uid, FetchOptions.Normal); bool delete = false; // process the message here if (msg.Subject.Equals("subject")) { Console.WriteLine("subject message deleting..."); delete = true; } if (delete) { Client.DeleteMessage(uid); } } } }
public void move() { // move specific emails using (ImapClient Client = new ImapClient("imap.gmail.com", 993, "*****@*****.**", "aq1sw2de3fr4", AuthMethod.Login, true)) { IEnumerable <uint> uids = Client.Search(SearchCondition.All()); foreach (uint uid in uids) { MailMessage msg = Client.GetMessage(uid, FetchOptions.Normal); bool move = false; // process the message here if (msg.Subject.Equals("Hello")) { Console.WriteLine("Hello message moving to trash..."); move = true; } if (move) { Client.MoveMessage(uid, "[Gmail]/Trash"); } } } }
public List <Email> ReadEmails() { List <Email> emails = new List <Email>(); S22.Imap.IImapClient imapClient = new S22.Imap.ImapClient("imap.gmail.com", 993, "*****@*****.**", "Demo1234!", AuthMethod.Login, true); IEnumerable <String> mailboxes = imapClient.ListMailboxes(); foreach (String mailbox in mailboxes) { Debug.WriteLine(mailbox); } IEnumerable <uint> uids = imapClient.Search(SearchCondition.All(), "INBOX"); IEnumerable <MailMessage> messages = imapClient.GetMessages(uids); foreach (MailMessage message in messages) { Debug.WriteLine(message.Subject); emails.Add(new Email { Subject = message.Subject, Body = message.Body, From = message.From.ToString(), To = message.To.ToString(), Date = message.Date().Value }); } return(emails); }
public List <MailMessage> GetAllMailHeaders(MailObj mObj) { using (ImapClient Client = new ImapClient(mObj.ServerAddress, mObj.Port, mObj.MailAddress, mObj.MailAddressPassword, AuthMethod.Login, true)) { IEnumerable <uint> uids = Client.Search(SearchCondition.All()); return(Client.GetMessages(uids, FetchOptions.HeadersOnly).ToList()); } }
public void UpdateEmails() { using (ImapClient client = new ImapClient("imap.gmail.com", 993, "*****@*****.**", "DeMonfortUniversity2015", AuthMethod.Auto, true)) { int EmailAddressNo = 0; var uids = client.Search(SearchCondition.All()); var messages = client.GetMessages(uids); foreach (var mail in messages) { //set up the data connection clsDataConnection DB = new clsDataConnection(); DB.AddParameter("EmailContent", mail.Body); DB.Execute("sproc_tblEmail_CheckIfExists"); DB.Execute("sproc_tblArchive_CheckIfExists"); //Int32 Result = Convert.ToInt32(DB.DataTable.Rows[0]["EmailNo"]); if (DB.DataTable.Rows.Count == 0) { clsDataConnection DB5 = new clsDataConnection(); string from = Convert.ToString(mail.From); //this uses substrings to extract the data we need from the email string output = from.Substring(from.IndexOf("<") + 1, from.IndexOf(">") - from.IndexOf("<") - 1); DB5.AddParameter("EmailAddress", output); DB5.Execute("sproc_tblEmail_CheckEmailAddress"); if (DB.DataTable.Rows.Count == 0) { clsDataConnection DB3 = new clsDataConnection(); DB3.AddParameter("EmailAddress", output); DB3.Execute("sproc_tblEmailAddress_InsertNewEmailAddress"); } clsDataConnection DB4 = new clsDataConnection(); DB4.AddParameter("EmailAddress", output); DB4.Execute("sproc_tblEmail_CheckEmailAddress"); EmailAddressNo = Convert.ToInt32(DB4.DataTable.Rows[0]["EmailAddressNo"]); //new data connection for new parameters clsDataConnection DB2 = new clsDataConnection(); var header = mail.Headers["Subject"]; string body = mail.Body; DB2.AddParameter("EmailSubject", header); DB2.AddParameter("EmailContent", body); DB2.AddParameter("EmailAddressNo", EmailAddressNo); DB2.Execute("sproc_tblEmail_InsertNewEmail"); } } } }
public void GetEmails(string mailbox) { using (ImapClient Client = new ImapClient(Host, Port, Username, Password, AuthMethod.Login, true)) { Console.WriteLine("Descargando Mensajes!..."); IEnumerable <uint> uids = Client.Search(SearchCondition.All(), mailbox); //IEnumerable<MailMessage> messages = Client.GetMessages(uids, true, mailbox); Messages = Client.GetMessages(uids, true, mailbox).ToList(); } }
public MailMessage GetEmail(string mailbox) { using (ImapClient Client = new ImapClient(Host, Port, Username, Password, AuthMethod.Login, true)) { Console.WriteLine("Descargando Mensajes del folder " + mailbox + "..."); Console.WriteLine(); List <uint> uids = Client.Search(SearchCondition.All(), mailbox).ToList(); Messages = Client.GetMessages(uids, true, mailbox).ToList(); } return(Messages.First()); }
//####################### //#Receive email methods# //####################### /// <summary> /// Retrieves all the unseen messages from the server /// </summary> /// <param name="FromAddress">User's email address</param> /// <param name="FromPass">User's password</param> /// <returns>All the retrieved messages</returns> public static List <MailMessage> GetAllMessages(string FromAddress, string FromPass) { // Check the host if (CheckEmailHostIMAP(FromAddress) == true && !(string.IsNullOrEmpty(FromPass))) { try { // Create a new ImapClient ImapClient client = new ImapClient(Host, Port, FromAddress, FromPass, AuthMethod.Login, true); // Get the uids IEnumerable <uint> uids = client.Search(SearchCondition.All()); // Get the messages IEnumerable <MailMessage> Messages = client.GetMessages(uids); // Convert to list List <MailMessage> MessagesList = Messages.ToList <MailMessage>(); // Return them return(MessagesList); } catch (Exception exception) { // Create the error message string ErrorMessage = "ERROR 60002" + "\n" + exception.ToString(); // Show the error message Program.ErrorPopupCall(ErrorMessage); // Make an empty list to return List <MailMessage> Stop = new List <MailMessage>(); // Stop executing this method return(Stop); } } else { // Create the error message string ErrorMessage = "ERROR 60003" + "\n" + "EmailHostIMAP(FromAddress) returned false"; // Show the error message Program.ErrorPopupCall(ErrorMessage); // Make an empty list to return List <MailMessage> Stop = new List <MailMessage>(); // Stop executing this method return(Stop); } }
public void S22_GetMessages() { using (var client = new ImapClient(host, 993, username, password, AuthMethod.Login, true)) { var search = client.Search(SearchCondition.All()); var messages = client.GetMessages(search); foreach (var message in messages) { Console.WriteLine($"{message.Date()} {message.Subject}"); } } }
public IEnumerable <MailMessage> GetMessages() { IEnumerable <MailMessage> messages; ImapClient client = GetClient(); using (client) { IEnumerable <uint> uids = client.Search(SearchCondition.All()); messages = client.GetMessages(uids); } return(messages); }
public void mailboxList() { // move specific emails using (ImapClient Client = new ImapClient("imap.gmail.com", 993, "*****@*****.**", "aq1sw2de3fr4", AuthMethod.Login, true)) { IEnumerable <uint> uids = Client.Search(SearchCondition.All()); IEnumerable <string> mailboxes = Client.ListMailboxes(); foreach (string i in mailboxes) { Console.WriteLine(i.ToString()); } } }
private void SynchronizeMailbox(ImapClient client, string mailbox, DirectoryInfo target) { var info = client.GetMailboxInfo(mailbox); Log.Info($"Synchronizing mailbox {info.Name} ({mailbox})."); // Fetch online data var onlineUids = client.Search(SearchCondition.All(), mailbox).ToList(); Log.Verbose($"Found {onlineUids.Count()} messages online."); // Match offline data foreach (var file in target.GetFiles("*.eml")) { var fileName = Path.GetFileNameWithoutExtension(file.Name); uint fileUid; if (!uint.TryParse(fileName.PadLeft(8, '0').Substring(0, 8), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out fileUid)) { Log.Warn($"Unexpected file '{file.Name}' found in mailbox {mailbox}."); continue; } if (this.Options.Delete && !onlineUids.Contains(fileUid)) { Log.Verbose($"Deleting obsolete message '{file.Name}'..."); file.Delete(); } onlineUids.Remove(fileUid); } // Fetch new files Log.Info($"Fetching {onlineUids.Count} messages..."); foreach (var onlineUid in onlineUids) { var message = client.GetMessage(onlineUid, FetchOptions.Normal, false, mailbox); if (message.From == null) { message.From = new MailAddress(Options.UserName); } var fileName = $"{onlineUid:x8} {CleanSubject(message.Subject)}.eml"; message.Save(Path.Combine(target.FullName, fileName)); Log.Verbose($"Fetched message '{fileName}'"); } }
public IEnumerable <MailDto> ReceiveAsync(params string[] identifiers) { using (var client = new S22.Imap.ImapClient(this.Host, this.Port, this.EnableSsl)) { client.Login(this.Email, this.Password.Decrypt(), AuthMethod.Login); var uids = client.Search(SearchCondition.All()); var identifiersAsUid = identifiers.Select(x => Convert.ToUInt32(x)); foreach (var uid in uids.Where(x => !identifiersAsUid.Contains(x))) { var message = client.GetMessage(uid); yield return(this.CreateMail(message, uid.ToString())); } client.Logout(); } }
public ActionResult MailDetay(DateTime date) { MailVM m = new MailVM(); using (ImapClient client = new ImapClient("imap.yandex.com.tr", 993, "*****@*****.**", "Umurbey.17", AuthMethod.Login, true)) { IEnumerable <uint> uids1 = client.Search(SearchCondition.All()); IEnumerable <MailMessage> messages = client.GetMessages(uids1); MailMessage item = messages.FirstOrDefault(x => x.Date() == date); m.from = item.From.DisplayName; m.Subject = item.Subject; m.Date = item.Date().Value; m.Body = item.Body; m.Attachment = item.Attachments; } return(View(m)); }
public IEnumerable <MailMessage> GetMessages() { ImapClient client = new ImapClient(hostname, 993, Username, Password, AuthMethod.Login, true); IEnumerable <MailMessage> messages; using (client) { try { IEnumerable <uint> uids = client.Search(SearchCondition.All()); messages = client.GetMessages(uids.ToArray()); } catch (NullReferenceException en) { throw en; } } return(messages); }
// GET: Home public ActionResult Index() { try { ImapClient imap = new ImapClient("imap.mail.yahoo.com", 993, true); imap.Login("******@yahoo.com", "*******", AuthMethod.Login); IEnumerable <uint> uids = imap.Search(SearchCondition.All()); dynamic messages = imap.GetMessages(uids); List <string> bodys = new List <string>(); for (var i = 0; i < messages.Count; i++) { if (messages[i].From.Address == "*****@*****.**") { bodys.Add(messages[i].Body); } } List <string> bounces = new List <string>(); for (int i = 0; i < bodys.Count; i++) { var index1 = bodys[i].IndexOf("\r\n\r\n<") + "\r\n\r\n<".Length; var index2 = bodys[i].IndexOf(">:\r\n550: 5.2.1"); //var index1 = bodys[i].IndexOf("\r\n\r\n<") + "\r\n\r\n<".Length; //var index2 = bodys[i].IndexOf(">:\r\n554:"); if (index1 != -1 && index2 != -1) { bounces.Add(bodys[i].Substring(index1, index2 - index1)); } } ViewBag.count = bounces.Count; ViewBag.bounces = bounces; } catch (Exception e) { ViewBag.exception = e.ToString(); } return(View()); }
private void frmUpdateEmailTest_Load(object sender, EventArgs e) { { using (ImapClient client = new ImapClient("imap.gmail.com", 993, "*****@*****.**", "DeMonfortUniversity2015", AuthMethod.Auto, true)) { var uids = client.Search(SearchCondition.All()); var messages = client.GetMessages(uids); foreach (var mail in messages) { var header = mail.Headers["Subject"]; string body = mail.Body; string from = Convert.ToString(mail.From); string output = from.Substring(from.IndexOf("<") + 1, from.IndexOf(">") - from.IndexOf("<") - 1); textBox1.Text = output; } } } }
public IEnumerable <MailMessage> GetMails() { IEnumerable <MailMessage> messages; var connection = ConnectToGmail(); if (connection == null) { errorMsg = "Username or password incorrect"; } else { using (connection) { IEnumerable <uint> uids = connection.Search(SearchCondition.All()); messages = connection.GetMessages(uids); } return(messages); } return(null); }
public async Task <MailMessage[]> GetInboxMessagesAsync(CancellationToken ct = default(CancellationToken)) { bool loggedIn = await this.LoginIfPossibleAndRequired(); if (!loggedIn) { return(new MailMessage[0]); } MailMessage[] messages = await Task <MailMessage[]> .Run(() => { uint[] inboxMsgIds = this.client.Search(SearchCondition.All()); return(this.client.GetMessages(inboxMsgIds)); }); if (messages == null) { messages = new MailMessage[0]; } return(messages); }
public List <int?> GetAllIDs() { var ids = new List <int>(); try { using (var client = GetClient()) { ids = client.Search(SearchCondition.All()).Select(x => (int)x).ToList(); } } catch (Exception) { if (!_suppressExceptions) { throw; } } return(ids.Select(x => (int?)x).ToList()); }
private void Login(string username, string password) { try { using (ImapClient Client = new ImapClient("imap.gmail.com", 993, username, password, AuthMethod.Login, true)) { label2.Text = username; pictureBox1.Load("user_80px.png"); int messages = 0; IEnumerable <uint> uids = Client.Search(SearchCondition.All()); foreach (uint message in uids) { messages++; } CountMessages(messages); } } catch (S22.Imap.InvalidCredentialsException) { MessageBox.Show("Invalid credentials."); } }
public IEnumerable <MailMessage> GetMessages(String email, String password, string filterOption = "") { try { using (ImapClient client = new ImapClient(imapHost, 993, email, password, AuthMethod.Login, true)) { SearchCondition searchCondition; switch (filterOption) { case "Unread": searchCondition = SearchCondition.Unseen(); break; case "New": searchCondition = SearchCondition.New(); break; case "Unanswered": searchCondition = SearchCondition.Unanswered(); break; default: searchCondition = SearchCondition.All(); break; } // Returns a collection of identifiers of all mails matching the specified search criteria. IEnumerable <uint> uids = client.Search(searchCondition); // Download mail messages from the default mailbox. IEnumerable <MailMessage> messages = client.GetMessages(uids); return(messages); } } catch (InvalidCredentialsException) { return(null); } }
public void Run() { using (ImapClient Client = new ImapClient("imap.gmail.com", 993, "*****@*****.**", "aq1sw2de3fr4", AuthMethod.Login, true)) { // checks all emails and sends to handlers to check format IEnumerable <MailMessage> uids = Client.Search(SearchCondition.All()).Select(uid => Client.GetMessage(uid)); bool handled = false; foreach (MailMessage msg in uids) { if (msg.Subject.Equals("Hello")) { Console.WriteLine("Hello message found..."); //Console.WriteLine(msg.Body); msg.Dispose(); } //else if (msg.Body.ToString().Trim().Equals("hello")) // \r\n\r\n else if (msg.Subject.Equals("subject")) { Console.WriteLine("subject message found..."); msg.Dispose(); } else if (msg.Subject.Equals("hi")) { Console.WriteLine("hi message found..."); msg.Dispose(); } else { Console.WriteLine("msg not found"); } } //EmailWriter write = new EmailWriter(); //write.GenerateEmail("hello", "subject", "*****@*****.**", false); } }
public ActionResult Email(string folder) { List <MailVM> mails = new List <MailVM>(); using (ImapClient client = new ImapClient("imap.yandex.com.tr", 993, "*****@*****.**", "Umurbey.17", AuthMethod.Login, true)) { IEnumerable <uint> uids1 = client.Search(SearchCondition.All(), mailbox: folder); IEnumerable <MailMessage> messages = client.GetMessages(uids1); foreach (var item in messages) { MailVM m = new MailVM(); m.from = item.From.DisplayName; m.Subject = item.Subject; m.Date = item.Date().Value; m.Read = true; m.Attachment = item.Attachments; m.Body = item.Body; mails.Add(m); } } return(View(mails.OrderByDescending(x => x.Date).ToList())); }
public static string ReadGmailRecentMail(string UserAccount, string Password) // 讀取Gmail最新信件內容 { string hostname = "imap.gmail.com"; string username = UserAccount; string password = Password; using (ImapClient client = new ImapClient(hostname, 993, username, password, AuthMethod.Login, true)) { var uids = client.Search(SearchCondition.All()); // 指定信件匣 "所有" 信件 var last_message = client.GetMessages(uids).Last(); // 擷取信件匣內"最新"mail string from = last_message.From.Address.ToString().Trim(); string from_displayname = last_message.From.DisplayName.ToString().Trim(); string to = last_message.To.ToString().Trim(); string date = last_message.Date().ToString().Trim(); string subject = last_message.Subject.ToString().Trim(); string body = last_message.Body.ToString().Trim(); string bodyHTNL = last_message.IsBodyHtml.ToString().Trim(); string attachment = last_message.Attachments.ToString().Trim(); return($" 寄件人: {from_displayname} <{from}> \n 收件人: {to} \n 收件時間: {date} \n 主旨: {subject} \n 內文: \n\n {body}"); // report出信件內容 } }
protected List <uint> getUidsAll(string mailbox) { return(Conversion.IEnumUint2List(this.client.Search(SearchCondition.All(), mailbox))); }
public List <MailMessage> GetAllMessages() { var uids = imapClient.Search(SearchCondition.All()); return(imapClient.GetMessages(uids).ToList()); }