Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
 public SearchResult <Poet> SearchPoets(TextSearchQuery query)
 {
     throw new NotImplementedException();
 }