Esempio n. 1
0
        public async Task Delete(ConfigModel conf, User user, MailWindow inbox)
        {
            using (ImapClient client = new ImapClient())
            {
                await client.ConnectAsync(conf.ImapServer, conf.ImapPort);

                client.Authenticate(user.Mail, user.Password);
                var Folder = client.GetFolder(ListMessages.fold);
                Folder.Open(MailKit.FolderAccess.ReadWrite);

                if (client.Capabilities.HasFlag(ImapCapabilities.SpecialUse))
                {
                    Deleting content = new Deleting("Are you sure? Your message will be move into trash folder.");
                    content.ShowDialog();
                    bool result = content.result;
                    if (result == true)
                    {
                        var trash = client.GetFolder(SpecialFolder.Trash);
                        Folder.MoveTo(Message.SelectedMails, trash);
                        new ListMessages().Refresh(user, conf, inbox);
                    }
                }
                else
                {
                    Deleting content = new Deleting("Are you sure your IMAP Server do not support trash folder. Message wil be deleted ");
                    bool     result  = content.result;
                    if (result == true)
                    {
                        Folder.AddFlags(Message.SelectedMails, MailKit.MessageFlags.Deleted, false);
                        new ListMessages().Refresh(user, conf, inbox);
                    }
                }
            }
        }
Esempio n. 2
0
        public async Task Move(ConfigModel conf, User user, MailWindow inboxPage)
        {
            var    choosed = (Folder)inboxPage.Folders.SelectedItem;
            string folder  = String.Empty;

            if (choosed == null)
            {
                folder = "inbox";
            }
            else
            {
                folder = choosed.Name;
            }

            using (ImapClient client = new ImapClient())
            {
                await client.ConnectAsync(conf.ImapServer, conf.ImapPort);

                client.Authenticate(user.Mail, user.Password);
                var Folder = client.GetFolder(folder);
                Folder.Open(MailKit.FolderAccess.ReadWrite);
                FolderChoose select = new FolderChoose();
                select.ShowDialog();
                var wchoosed = (Folder)select.FolderSelect.SelectedItem;
                var destiny  = client.GetFolder(wchoosed.Name);
                Folder.MoveTo(Message.SelectedMails, destiny);
                new ListMessages().Refresh(user, conf, inboxPage);
            }
        }
Esempio n. 3
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);
            }
        }
Esempio n. 4
0
        public async Task ShowSeen(MailWindow inboxPage, ConfigModel config, User user, short Mode)
        {
            using (ImapClient client = new ImapClient())
            {
                await client.ConnectAsync(config.ImapServer, config.ImapPort);

                client.Authenticate(user.Mail, user.Password);
                var Folder = client.GetFolder(ListMessages.fold);
                Folder.Open(FolderAccess.ReadWrite);
                IList <UniqueId> SearchUids = null;
                if (Mode == 1)
                {
                    SearchUids = await Folder.SearchAsync(SearchQuery.NotSeen);
                }

                else if (Mode == 2)
                {
                    SearchUids = await Folder.SearchAsync(SearchQuery.Seen);
                }
                var                    a      = SearchUids.Skip(SearchUids.Count - (ListMessages.loaded + ListMessages.load + 1)).Take(ListMessages.load);
                List <UniqueId>        Unseen = a.ToList <UniqueId>();
                var                    msgs   = Folder.Fetch(Unseen, MessageSummaryItems.Envelope | MessageSummaryItems.Flags | MessageSummaryItems.GMailLabels);
                List <IMessageSummary> msgsr  = new List <IMessageSummary>();
                for (var i = msgs.Count - 1; i >= 0; i--)
                {
                    msgsr.Add(msgs[i]);
                }
                new ListMessages().ShowMessages(msgsr, inboxPage);
                client.Disconnect(true);
            }
        }
        WindowState = WindowState.Minimized;     // Свернуть окно

        private void btnMail_Click(object sender, RoutedEventArgs e)
        {
            MailWindow mani = new MailWindow();

            mani.Show();
            Close();
        }
Esempio n. 6
0
        public void Send(MailWindow Page, User user, ConfigModel cfg, string to, string subject, string msg)
        {
            var message = new MimeMessage();

            message.From.Add(new MailboxAddress(user.Mail));
            message.To.Add(new MailboxAddress(to));
            message.Subject = subject;
            var Body = new BodyBuilder();

            Body.HtmlBody = msg;
            foreach (var attachment in Message.AttachmentList)
            {
                Body.Attachments.Add(attachment);
            }
            message.Body = Body.ToMessageBody();

            using (SmtpClient client = new SmtpClient())
            {
                try
                {
                    client.Connect(cfg.SmtpServer, cfg.SmtpPort);
                    client.Authenticate(user.Mail, user.Password);
                    client.Send(message);
                    client.Disconnect(true);
                }
                catch (MailKit.Net.Smtp.SmtpCommandException)
                {
                    info inf = new info("Message Could not be Sent \n\r Maybe you are trying to send to much attachments");
                    inf.ShowDialog();
                }
            }
        }
Esempio n. 7
0
 public void initialize(TempProp _prop)
 {
     win = fatherWindow as MailWindow;
     updateButton(_prop);
     timer = TimerManager.Instance.getTimer(UserManager.TIMER_DELAY);
     timer.addOnTimer(surplusTimeShow);
     timer.start();
 }
Esempio n. 8
0
 public OpenMessage(MailWindow w)
 {
     w.frameStatus = 1;
     InitializeComponent();
     if (w.MainFrame.CanGoBack)
     {
         w.Back.IsEnabled = true;
     }
 }
Esempio n. 9
0
 public MessageList(MailWindow w, ConfigModel config, User user)
 {
     w.MsgList     = this;
     w.frameStatus = 0;
     Config        = config;
     UserData      = user;
     Window        = w;
     InitializeComponent();
     Messages.ItemsSource = Model.Message.Mails;
 }
Esempio n. 10
0
 public void MostrarCorreo()
 {
     try
     {
         MailWindow mailWindow = new MailWindow();
         mailWindow.ShowDialog();
     } catch (Exception e)
     {
         UIGlobal.MainWindow.ShowMessage(e.ToString(), "error");
     }
 }
Esempio n. 11
0
        public bool ShowMailDialog()
        {
            List <CheckInDto> checkInDtos = (List <CheckInDto>)memberWindow.DefaulData;

            if (checkInDtos.Count > 0)
            {
                MailWindow mailWindow = new MailWindow();
                mailWindow.EmailData = memberWindow.DefaulData;
                mailWindow.EventId   = memberWindow.Id.ToString();
                return((bool)mailWindow.ShowDialog());
            }
            return(false);
        }
Esempio n. 12
0
        public async Task Attachment(MailWindow inboxPage, User user, ConfigModel conf, string Atch, string destination)
        {
            using (ImapClient client = new ImapClient())
            {
                await client.ConnectAsync(conf.ImapServer, conf.ImapPort);

                client.Authenticate(user.Mail, user.Password);
                IMailFolder Folder = client.GetFolder(ListMessages.fold);
                await Folder.OpenAsync(FolderAccess.ReadWrite);

                IList <IMessageSummary> atc = Folder.Fetch(new[] { LastOpenId }, MessageSummaryItems.Body);
                var multipart                 = (BodyPartMultipart)atc.First().Body;
                var attachment                = multipart.BodyParts.OfType <BodyPartBasic>().FirstOrDefault(x => x.FileName == Atch);
                TransferProgress progress     = new TransferProgress();
                Downloads        FileDownload = new Downloads();
                FileDownload.Show();
                var file = Folder.GetBodyPart(LastOpenId, attachment, default, progress);
Esempio n. 13
0
 public void LoadMore(Message choosed, MailWindow inboxPage, ConfigModel conf, User user)
 {
     //ShowMode 0 = Show all messages
     //ShowMode 1 = Show only unseen
     //ShowMode 2 = Show only seen
     if (ShowMode == 0)
     {
         new ListMessages().DownloadMessages(user, conf, inboxPage);
     }
     else if (ShowMode == 1)
     {
         new Search().ShowSeen(inboxPage, conf, user, ShowMode);
     }
     else if (ShowMode == 2)
     {
         new Search().ShowSeen(inboxPage, conf, user, ShowMode);
     }
 }
Esempio n. 14
0
 public NewMessage(MailWindow w, User user, ConfigModel config)
 {
     if (w.MainFrame.CanGoBack)
     {
         w.Back.IsEnabled = true;
     }
     w.frameStatus = 2;
     Window        = w;
     Config        = config;
     UserData      = user;
     InitializeComponent();
     FontList.DataContext         = Fonts.SystemFontFamilies;
     FontList.SelectedIndex       = 0;
     FontSize.ItemsSource         = Model.FontSize.FontSizeList;
     FontSize.SelectedIndex       = 0;
     ClrPicker_Font.SelectedColor = Colors.Black;
     AttachmentList.ItemsSource   = Message.AttachmentList;
 }
Esempio n. 15
0
        public async Task ShowMessages(IList <IMessageSummary> messages, MailWindow inboxPage, string EndToken = null)
        {
            List <string> atc = new List <string>();

            foreach (IMessageSummary message in messages)
            {
                string From = message.Envelope.From.ToString();
                string Name = message.Envelope.From[0].Name;
                string Mail = (Name != null && Name != "") ? Mail = From.Substring(From.IndexOf('<') + 1, From.IndexOf('>') - From.IndexOf('<') - 1) : From;
                bool   open = checkOpen(message);
                inboxPage.Dispatcher.Invoke(() =>
                {
                    new Message().AddMail(new Message
                    {
                        UniqueID     = message.UniqueId,
                        ID           = message.Index,
                        FullFrom     = message.Envelope.From.First().ToString(),
                        From         = !string.IsNullOrEmpty(Name) ? Name : !string.IsNullOrEmpty(Mail) ? Mail : From,
                        Subject      = message.Envelope.Subject,
                        To           = message.Envelope.To.ToString(),
                        Time         = message.Date.ToString("dd/MM/yyyy") == DateTime.Today.ToString("dd/MM/yyyy") ? message.Date.ToString("HH:mm") : message.Date.ToString("dd/MM/yyyy"),
                        Opened       = open,
                        MessageColor = (open == true) ? new SolidColorBrush(Colors.White) : new SolidColorBrush(Color.FromRgb(211, 211, 211)),
                        IsLoadMore   = 0,
                        IsFavorite   = message.Flags.Value.HasFlag(MessageFlags.Flagged)
                    });
                });
                atc.Clear();
            }
            inboxPage.Dispatcher.Invoke(() =>
            {
                if (EndToken == null)
                {
                    new Message().AddMail(new Message()
                    {
                        Subject      = "Load more...",
                        MessageColor = ActualSettings.Actual.color,
                        IsLoadMore   = (Visibility)2
                    });
                }
                inboxPage.Load.ItemsSource = ConfigModel.LoadNumber;
            });
            loaded += load;
        }
Esempio n. 16
0
        public void Refresh(User user, ConfigModel conf, MailWindow inboxPage)
        {
            loaded = 0;
            Message.Mails.Clear();

            new ListMessages().DownloadFolders(user, conf, inboxPage);
            if (ShowMode == 0)
            {
                new ListMessages().DownloadMessages(user, conf, inboxPage);
            }
            else if (ShowMode == 1)
            {
                new Search().ShowSeen(inboxPage, conf, user, ShowMode);
            }
            else if (ShowMode == 2)
            {
                new Search().ShowSeen(inboxPage, conf, user, ShowMode);
            }
        }
Esempio n. 17
0
        public async Task DownloadMessages(User user, ConfigModel conf, MailWindow inboxPage, string Folder = null)
        {
            using (ImapClient client = new ImapClient())
            {
                if (load < 10)
                {
                    load = ActualSettings.Actual.DefaultLoadValue;
                }
                await client.ConnectAsync(conf.ImapServer, conf.ImapPort);

                client.Authenticate(user.Mail, user.Password);
                List <int> uids   = new List <int>();
                var        folder = GetFold(client, Folder);
                if (Folder != null)
                {
                    fold = Folder;
                }
                else
                {
                    Folder = fold;
                }
                await folder.OpenAsync(MailKit.FolderAccess.ReadOnly);

                List <IMessageSummary> InfoReverse = new List <IMessageSummary>();
                string ENDToken = null;
                if (folder.Count < load + loaded)
                {
                    load     = folder.Count - loaded;
                    ENDToken = "END";
                }

                for (int i = folder.Count - (loaded == 0 ? 1 : loaded); i >= folder.Count - (load == 1 ? 1: (loaded + load - 1)); i--)
                {
                    IList <IMessageSummary> info = await folder.FetchAsync(new[] { i }, MessageSummaryItems.Envelope | MessageSummaryItems.Flags | MessageSummaryItems.UniqueId);

                    InfoReverse.Add(info.First());
                }
                ShowMessages(InfoReverse, inboxPage, ENDToken);

                client.Disconnect(true);
            }
        }
Esempio n. 18
0
        public async Task DownloadFolders(User user, ConfigModel conf, MailWindow InboxPage)
        {
            using (ImapClient client = new ImapClient())
            {
                Folder.Folders.Clear();
                client.Connect(conf.ImapServer, conf.ImapPort);
                client.Authenticate(user.Mail, user.Password);
                IList <IMailFolder> ClientFolders = client.GetFolders(client.PersonalNamespaces[0]);

                for (int i = ClientFolders.Count - 1; i > -1; i--)
                {
                    InboxPage.Dispatcher.Invoke(() =>
                    {
                        Folder.Folders.Add(new Folder()
                        {
                            Name = ClientFolders[i].FullName,
                            id   = ClientFolders[i].Id
                        });
                    });
                }
                client.Disconnect(true);
            }
        }
Esempio n. 19
0
        public async void ToMail(User user, MainWindow loginWindow, View.LoginWindow.Login loginpage)
        {
            ConfigModel Config = View.LoginWindow.Login.Config;

            using (SmtpClient sclient = new SmtpClient())
            {
                try
                {
                    sclient.ServerCertificateValidationCallback = (s, c, h, e) => true;
                    await sclient.ConnectAsync(Config.SmtpServer, Config.SmtpPort);

                    sclient.Authenticate(user.Mail, user.Password);
                    sclient.Disconnect(true);
                    using (ImapClient client = new ImapClient())
                    {
                        try
                        {
                            client.ServerCertificateValidationCallback = (s, c, h, e) => true;
                            await client.ConnectAsync(Config.ImapServer, Config.ImapPort);

                            client.Authenticate(user.Mail, user.Password);
                            client.Disconnect(true);
                            MailWindow mail = new MailWindow(user, Config);
                            mail.Show();
                            loginWindow.Close();
                        }
                        catch (Exception)
                        {
                            loginpage.Info.Text = "Cannot Log-in Check Configuration";
                        }
                    }
                }catch (Exception)
                {
                    loginpage.Info.Text = "Cannot Log-in Check Configuration";
                }
            }
        }
Esempio n. 20
0
    public void initialize(Mail _mail)
    {
        win = fatherWindow as MailWindow;
        updateMail(_mail);
//		addTimer();
    }
Esempio n. 21
0
 public void UpdateTemp(TempProp _temp)
 {
     win       = fatherWindow as MailWindow;
     this.temp = _temp;
 }