public async Task SearchMessageAsync(User user, ConfigModel config, MailWindow inboxPage, string Text) { using (ImapClient client = new ImapClient()) { await client.ConnectAsync(config.ImapServer, config.ImapPort); client.Authenticate(user.Mail, user.Password); var Folder = new ListMessages().GetFold(client, ListMessages.fold); await Folder.OpenAsync(FolderAccess.ReadWrite); IList <MailKit.UniqueId> SearchUids; try { SearchUids = await Folder.SearchAsync(TextSearchQuery.SubjectContains(Text)); } catch (System.ArgumentException) { new ListMessages().DownloadMessages(user, config, inboxPage, Folder.FullName); SearchUids = null; } var msgs = Folder.Fetch(SearchUids, MessageSummaryItems.Envelope | MessageSummaryItems.Flags | MessageSummaryItems.GMailLabels); Model.Message.Mails.Clear(); new ListMessages().ShowMessages(msgs, inboxPage); client.Disconnect(true); } }
private IEnumerable <MimeMessage> FindMailsByQuery(TextSearchQuery query) { var inbox = client.Inbox; if (!inbox.IsOpen) { inbox.Open(FolderAccess.ReadOnly); } return(inbox.Search(query).Select(x => inbox.GetMessage(x))); }
public SearchResult <Poet> SearchPoets(TextSearchQuery query) { throw new NotImplementedException(); }