public IList<MailMessage> GetMailMessagesOfAccount(MailboxAccount account) { Pop3Client client = null; IList<MailMessage> messages = null; try { client = new Pop3Client(account.Username, account.Password, account.Server); client.OpenInbox(); messages = new List<MailMessage>(); while (client.NextEmail()) { MailMessage message = new MailMessage() { Id = client.Date.Ticks.ToString(), To = client.To, From = client.From, Subject = client.Subject, Body = client.Body, Date=client.Date }; if (client.ContentType != null) { message.Format = client.ContentType.ToLower().Contains("html") ? MailMessageFormat.Html : MailMessageFormat.Text; message.ContentType = client.ContentType; } else { message.Format = MailMessageFormat.Text; message.ContentType = string.Empty; } messages.Add(message); } } finally { client.CloseConnection(); } return messages; }
public void DeleteMailMessageOfAccountById(MailboxAccount account, string messageId) { Pop3Client client = null; try { client = new Pop3Client(account.Username, account.Password, account.Server); client.OpenInbox(); while (client.NextEmail()) { string id = client.Date.Ticks.ToString(); bool result = client.DeleteEmail(); if (!result) { throw new ApplicationException("Mail message not deleted"); } } } finally { client.CloseConnection(); } }
public MailMessage GetMailMessageOfAccountById(MailboxAccount account, string messageId) { IList<MailMessage> messages = this.GetMailMessagesOfAccount(account); foreach (var item in messages) { if (item.Id == messageId) { return item; } } return null; }