public IEnumerable <IEMailMessageI> GetReadMailMessages(IMailRequestI mailRequest)
        {
            var mailMessages = new List <IEMailMessageI>();

            using (ImapClient client = new ImapClient())
            {
                client.Connect(MailReadersSettingsModule.Settings.IMAP, MailReadersSettingsModule.Settings.IMAPport, SecureSocketOptions.SslOnConnect);
                client.Authenticate(MailReadersSettingsModule.Settings.Login, MailReadersSettingsModule.Settings.Password);
                IMailFolder inbox = client.Inbox;
                inbox.Open(FolderAccess.ReadOnly);
                var uids = inbox.Search(SearchQuery.Seen);
                foreach (var item in uids)
                {
                    var message     = inbox.GetMessage(item);
                    var mailMessage = EntityManager <IEMailMessageI> .Instance.Create();

                    mailMessage.Name                 = DateTime.Now.ToString();
                    mailMessage.CreationDate         = DateTime.Now;
                    mailMessage.Tema                 = message.Subject;
                    mailMessage.Soobschenie          = message.HtmlBody;
                    mailMessage.DataPolucheniePisjma = message.Date.UtcDateTime;
                    mailMessage.OtKogo               = message.From.FirstOrDefault().Name;
                    mailMessage.Save();
                    mailMessages.Add(mailMessage);
                }
            }
            return(mailMessages.AsEnumerable());
        }
 public void RunProcessesMailMassages(IMailRequestI mailRequest)
 {
     if (MailReadersSettingsModule.Settings.MailProcess != null)
     {
         if (MailReadersSettingsModule.Settings.MailProcess.Published != null)
         {
             WorkflowInstanceManager.Instance.StartProcess(
                 MailReadersSettingsModule.Settings.MailProcess.Published,
                 "Процесс обработки писем от " + DateTime.Today.ToString(),
                 new
             {
                 Request = mailRequest
             });
         }
     }
 }
        public IEnumerable <IEMailMessageI> GetUnreadMailMessages(IMailRequestI mailRequest)
        {
            var mailMessages = new List <IEMailMessageI>();

            using (ImapClient client = new ImapClient())
            {
                client.Connect(MailReadersSettingsModule.Settings.IMAP, MailReadersSettingsModule.Settings.IMAPport, SecureSocketOptions.SslOnConnect);
                client.Authenticate(MailReadersSettingsModule.Settings.Login, MailReadersSettingsModule.Settings.Password);
                IMailFolder inbox = client.Inbox;
                inbox.Open(FolderAccess.ReadOnly);
                var uids = inbox.Search(SearchQuery.NotSeen);
                foreach (var item in uids)
                {
                    var message     = inbox.GetMessage(item);
                    var mailMessage = EntityManager <IEMailMessageI> .Instance.Create();

                    ExecuteEmailMessage(message, mailMessage);
                    mailMessages.Add(mailMessage);
                }
            }
            return(mailMessages.AsEnumerable());
        }