public MainWindowViewModel()
        {
            users.CurrentUser.UserName     = "******";
            users.CurrentUser.PasswordHash = "";
            var currentAccount = new UserEmailAccount("imap.gmail.com", 993, "*****@*****.**", "atssddvndnffxggx");

            users.CurrentUser.CurrentEmailAccount = currentAccount;
        }
 private IList <UniqueId> Connection(ImapClient client, UserEmailAccount currentAccount, FolderAccess accessMode = FolderAccess.ReadWrite)
 {
     client.Connect(currentAccount.IMAPServer, currentAccount.Port, SecureSocketOptions.SslOnConnect);
     client.Authenticate(currentAccount.EmailAddress, currentAccount.ApplicationPassword);
     //client.Connect("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect);
     //client.Authenticate("*****@*****.**", "atssddvndnffxggx");
     client.Inbox.Open(accessMode);
     return(client.Inbox.Search(SearchQuery.All));
 }
        public List <ReceivedEmail> DownloadMessages(Object currentEmail)
        {
            UserEmailAccount currentAccount = (UserEmailAccount)currentEmail;
            var messages = new List <ReceivedEmail>();

            using (var client = new ImapClient())
            {
                var uids = Connection(client, currentAccount);
                foreach (var uid in uids)
                {
                    try
                    {
                        var receivedEmail = new ReceivedEmail(uid, client.Inbox.GetMessage(uid));
                        messages.Add(receivedEmail);
                    }
                    catch (MessageNotFoundException)
                    {
                        Console.WriteLine("No messages found, inbox is empty.");
                    }
                }
                client.Disconnect(true);
                return(messages);
            }
        }
        private async void DownloadMessagesAsync(UserEmailAccount currentAccount)
        {
            var messages = await Task <List <ReceivedEmail> > .Factory.StartNew(DownloadMessages, currentAccount);

            ManageEmailChanges(messages);
        }
 public void StartGettingMessages(UserEmailAccount currentAccount)
 {
     _timer.Interval = TimeSpan.FromMilliseconds(5000);
     _timer.Tick    += (sender, args) => DownloadMessagesAsync(currentAccount);
     _timer.Start();
 }
 public void GetUserEmails(UserEmailAccount currentAccount)
 {
     inboundEmails.StartGettingMessages(currentAccount);
 }
Exemple #7
0
 public DeleteEmailIdentificationData(List <UniqueId> uids, UserEmailAccount currentAccount)
 {
     this.uids           = uids;
     this.currentAccount = currentAccount;
 }