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); } } } }
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); } }
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); } }
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(); }
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(); } } }
public void initialize(TempProp _prop) { win = fatherWindow as MailWindow; updateButton(_prop); timer = TimerManager.Instance.getTimer(UserManager.TIMER_DELAY); timer.addOnTimer(surplusTimeShow); timer.start(); }
public OpenMessage(MailWindow w) { w.frameStatus = 1; InitializeComponent(); if (w.MainFrame.CanGoBack) { w.Back.IsEnabled = true; } }
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; }
public void MostrarCorreo() { try { MailWindow mailWindow = new MailWindow(); mailWindow.ShowDialog(); } catch (Exception e) { UIGlobal.MainWindow.ShowMessage(e.ToString(), "error"); } }
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); }
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);
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); } }
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; }
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; }
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); } }
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); } }
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); } }
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"; } } }
public void initialize(Mail _mail) { win = fatherWindow as MailWindow; updateMail(_mail); // addTimer(); }
public void UpdateTemp(TempProp _temp) { win = fatherWindow as MailWindow; this.temp = _temp; }