public bool ReceivedWelcomeKit(DateTime since, string coId, string company) { Console.WriteLine($"SINCE {since}"); Console.WriteLine($"{DateTime.Now} BEGIN"); var inbox = client.Inbox; inbox.Open(MailKit.FolderAccess.ReadOnly); Console.WriteLine($"{DateTime.Now} OPENED"); var query = SearchQuery.DeliveredAfter(since) .And(SearchQuery.SubjectContains($"Welcome to GS1 US")) .And(SearchQuery.BodyContains($"Account Number: {coId}")); foreach (var uid in inbox.Search(query)) { Console.WriteLine($"{DateTime.Now} MAIL {uid}"); var message = inbox.GetMessage(uid); Console.WriteLine($"{DateTime.Now} GOT MESSAGE"); var m = Regex.Match(message.HtmlBody, $"Account Number: ([0-9]+)"); if (m.Success && m.Groups[1].Value == coId) { inbox.Close(); return(true); } Console.WriteLine($"{DateTime.Now} NEXT"); } Console.WriteLine($"{DateTime.Now} END"); inbox.Close(); return(false); }
private static List <TaxiMessage> LoadMessages(DateTime fromDate) { var login = Environment.GetEnvironmentVariable("GMAIL_LOGIN"); var password = Environment.GetEnvironmentVariable("GMAIL_PASSWORD"); var imapClient = new ImapClient(); imapClient.Connect("imap.gmail.com", 993); imapClient.Authenticate(login, password); var mailbox = imapClient.Inbox; mailbox.Open(FolderAccess.ReadOnly); var searchQuery = SearchQuery.SentSince(fromDate) .And(SearchQuery.FromContains("*****@*****.**")) .And(SearchQuery.Or( SearchQuery.BodyContains(TaxiMessage.ValidStreetNames[0]), SearchQuery.BodyContains(TaxiMessage.ValidStreetNames[1])) ); var messages = mailbox.Search(searchQuery) .Select(id => mailbox.GetMessage(id)) .ToList(); mailbox.Close(); return(messages.Select(m => new TaxiMessage(m)) .Where(m => m.HasOfficeTaxi) .ToList()); }
public void TestArgumentExceptions() { Assert.Throws <ArgumentNullException> (() => SearchQuery.And(null, SearchQuery.All)); Assert.Throws <ArgumentNullException> (() => SearchQuery.And(SearchQuery.All, null)); Assert.Throws <ArgumentNullException> (() => SearchQuery.BccContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.BccContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.BodyContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.BodyContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.CcContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.CcContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.DoesNotHaveCustomFlag(null)); Assert.Throws <ArgumentException> (() => SearchQuery.DoesNotHaveCustomFlag(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.DoesNotHaveCustomFlags(null)); Assert.Throws <ArgumentException> (() => SearchQuery.DoesNotHaveFlags(MessageFlags.None)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Filter(null)); Assert.Throws <ArgumentException> (() => SearchQuery.Filter(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.FromContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.FromContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Fuzzy(null)); Assert.Throws <ArgumentNullException> (() => SearchQuery.GMailRawSearch(null)); Assert.Throws <ArgumentException> (() => SearchQuery.GMailRawSearch(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HasCustomFlag(null)); Assert.Throws <ArgumentException> (() => SearchQuery.HasCustomFlag(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HasCustomFlags(null)); Assert.Throws <ArgumentException> (() => SearchQuery.HasFlags(MessageFlags.None)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HasGMailLabel(null)); Assert.Throws <ArgumentException> (() => SearchQuery.HasGMailLabel(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HeaderContains(null, "text")); Assert.Throws <ArgumentException> (() => SearchQuery.HeaderContains(string.Empty, "text")); Assert.Throws <ArgumentNullException> (() => SearchQuery.HeaderContains("name", null)); Assert.Throws <ArgumentOutOfRangeException> (() => SearchQuery.LargerThan(-1)); Assert.Throws <ArgumentNullException> (() => SearchQuery.MessageContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.MessageContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Not(null)); Assert.Throws <ArgumentOutOfRangeException> (() => SearchQuery.OlderThan(-1)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Or(null, SearchQuery.All)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Or(SearchQuery.All, null)); Assert.Throws <ArgumentOutOfRangeException> (() => SearchQuery.SmallerThan(-1)); Assert.Throws <ArgumentNullException> (() => SearchQuery.SubjectContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.SubjectContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.ToContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.ToContains(string.Empty)); Assert.Throws <ArgumentOutOfRangeException> (() => SearchQuery.YoungerThan(-1)); Assert.Throws <ArgumentNullException> (() => SearchQuery.All.And(null)); Assert.Throws <ArgumentNullException> (() => SearchQuery.All.Or(null)); Assert.Throws <ArgumentNullException> (() => new BinarySearchQuery(SearchTerm.And, null, SearchQuery.All)); Assert.Throws <ArgumentNullException> (() => new BinarySearchQuery(SearchTerm.And, SearchQuery.All, null)); Assert.Throws <ArgumentNullException> (() => new FilterSearchQuery(null)); Assert.Throws <ArgumentException> (() => new FilterSearchQuery(string.Empty)); Assert.Throws <ArgumentNullException> (() => new HeaderSearchQuery(null, "text")); Assert.Throws <ArgumentException> (() => new HeaderSearchQuery(string.Empty, "text")); Assert.Throws <ArgumentNullException> (() => new HeaderSearchQuery("name", null)); Assert.Throws <ArgumentNullException> (() => new TextSearchQuery(SearchTerm.BodyContains, null)); Assert.Throws <ArgumentNullException> (() => new UidSearchQuery(null)); Assert.Throws <ArgumentException> (() => new UidSearchQuery(new UniqueIdSet())); Assert.Throws <ArgumentException> (() => new UidSearchQuery(UniqueId.Invalid)); Assert.Throws <ArgumentNullException> (() => new UnarySearchQuery(SearchTerm.Not, null)); }
public static void ReadEmail(string Emaild, string password) { FirstCaller = new List <string>(); string emailUrl = string.Empty; using (var client = new ImapClient()) { // accept all SSL certificates client.ServerCertificateValidationCallback = (s, c, h, e) => true; client.Connect("imap.gmail.com", 993, true); client.Authenticate(Emaild, password); // The Inbox folder is always available on all IMAP servers... var inbox = client.Inbox; inbox.Open(FolderAccess.ReadWrite); List <UniqueId> uids = inbox.Search(SearchQuery.BodyContains("follow")).ToList(); uids.Reverse(); //uids.OrderByDescending(a => a.CompareTo(uids.Last())); foreach (var uid in uids) { var msg = inbox.GetMessage(uid); if (msg.TextBody.Contains("follow")) { emailUrl = msg.TextBody; } break; } //var message = inbox.GetMessage(inbox.Count - 1); //emailUrl = message.TextBody; string text = Regex.Replace(emailUrl.ToString(), @"((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)", "<a target='_blank' href='$1'>$1</a>"); var regex = new Regex("<a [^>]*href=(?:'(?<href>.*?)')|(?:\"(?<href>.*?)\")", RegexOptions.IgnoreCase); //var urls = regex.Matches(text).OfType<Match>().Select(m => m.Groups["href"].Value).SingleOrDefault(); var doc = new HtmlDocument(); doc.LoadHtml(text); var nodes = doc.DocumentNode.SelectNodes("a[@href]").ToList(); string temp = nodes[0].Attributes["href"].Value; FirstCaller.Add(temp); int count = FirstCaller.Count(); client.Disconnect(true); } }
public ICollection <string> GetHtmlMessages() { using (var client = new ImapClient()) { client.Connect(_applicationSettings.ImapHost, _applicationSettings.ImapPort, true); client.Authenticate(_applicationSettings.ImapLogin, _applicationSettings.ImapPassword); var inbox = client.Inbox; inbox.Open(FolderAccess.ReadOnly); var searchResult = inbox.Search(SearchOptions.All, SearchQuery.BodyContains("Вы заказали такси").And(SearchQuery.BodyContains("Отчёт о поездке")).And(SearchQuery.FromContains("*****@*****.**"))); var messages = searchResult.UniqueIds.Select(uid => inbox.GetMessage(uid).HtmlBody).ToList(); client.Disconnect(true); return(messages); } }
/// <summary> /// Returns the query object used to search the email body text, /// derived from each line of the input text file /// </summary> /// <param name="fileName">The relative path of the desired text file</param> /// <param name="retrospect">Boolean indicating if query needs (and contains retrospect) appended</param> /// <returns></returns> public static SearchQuery GetSearchQuery(string fileName, bool retrospect) { string[] queries = File.ReadAllLines(fileName); // Get first search term SearchQuery search = SearchQuery.BodyContains(queries[0]); // Get consecutive search terms and concatenate them into a large or statement for (int i = 1; i < queries.Length; i++) { search = search.Or(SearchQuery.BodyContains(queries[i])); } // Add a check for the sendee being the retrospect client if retrospect = true search = retrospect ? search.And(SearchQuery.FromContains("NewDesktop Retrospect NAS")) : search; return(search); }
private MimeMessage[] search(ImapClient client, string pattern) { int index = 0; var query = SearchQuery.SubjectContains(pattern).Or(SearchQuery.BodyContains(pattern)); var inbox = client.Inbox; inbox.Open(FolderAccess.ReadWrite); int founded = inbox.Search(query).Count; MimeMessage[] foundMessages = new MimeMessage[founded]; foreach (var uid in inbox.Search(query)) { var message = inbox.GetMessage(uid); foundMessages[index] = message; index++; } return(foundMessages); }
public override void RunCommand(object sender) { var engine = (IAutomationEngineInstance)sender; string vIMAPHost = v_IMAPHost.ConvertUserVariableToString(engine); string vIMAPPort = v_IMAPPort.ConvertUserVariableToString(engine); string vIMAPUserName = v_IMAPUserName.ConvertUserVariableToString(engine); string vIMAPPassword = ((SecureString)v_IMAPPassword.ConvertUserVariableToObject(engine, nameof(v_IMAPPassword), this)).ConvertSecureStringToString(); string vIMAPSourceFolder = v_IMAPSourceFolder.ConvertUserVariableToString(engine); string vIMAPFilter = v_IMAPFilter.ConvertUserVariableToString(engine); string vIMAPMessageDirectory = v_IMAPMessageDirectory.ConvertUserVariableToString(engine); string vIMAPAttachmentDirectory = v_IMAPAttachmentDirectory.ConvertUserVariableToString(engine); using (var client = new ImapClient()) { client.ServerCertificateValidationCallback = (sndr, certificate, chain, sslPolicyErrors) => true; client.SslProtocols = SslProtocols.None; using (var cancel = new CancellationTokenSource()) { try { client.Connect(vIMAPHost, int.Parse(vIMAPPort), true, cancel.Token); //SSL } catch (Exception) { client.Connect(vIMAPHost, int.Parse(vIMAPPort)); //TLS } client.AuthenticationMechanisms.Remove("XOAUTH2"); client.Authenticate(vIMAPUserName, vIMAPPassword, cancel.Token); IMailFolder toplevel = client.GetFolder(client.PersonalNamespaces[0]); IMailFolder foundFolder = FindFolder(toplevel, vIMAPSourceFolder); if (foundFolder != null) { foundFolder.Open(FolderAccess.ReadWrite, cancel.Token); } else { throw new Exception("Source Folder not found"); } SearchQuery query; if (vIMAPFilter.ToLower() == "none") { query = SearchQuery.All; } else if (!string.IsNullOrEmpty(vIMAPFilter.Trim())) { query = SearchQuery.MessageContains(vIMAPFilter) .Or(SearchQuery.SubjectContains(vIMAPFilter)) .Or(SearchQuery.FromContains(vIMAPFilter)) .Or(SearchQuery.BccContains(vIMAPFilter)) .Or(SearchQuery.BodyContains(vIMAPFilter)) .Or(SearchQuery.CcContains(vIMAPFilter)) .Or(SearchQuery.ToContains(vIMAPFilter)); } else { throw new NullReferenceException("Filter not specified"); } if (v_IMAPGetUnreadOnly == "Yes") { query = query.And(SearchQuery.NotSeen); } var filteredItems = foundFolder.Search(query, cancel.Token); List <MimeMessage> outMail = new List <MimeMessage>(); foreach (UniqueId uid in filteredItems) { if (v_IMAPMarkAsRead == "Yes") { foundFolder.AddFlags(uid, MessageFlags.Seen, true); } MimeMessage message = foundFolder.GetMessage(uid, cancel.Token); if (v_IMAPSaveMessagesAndAttachments == "Yes") { ProcessEmail(message, vIMAPMessageDirectory, vIMAPAttachmentDirectory); } message.MessageId = $"{vIMAPSourceFolder}#{uid}"; outMail.Add(message); } outMail.StoreInUserVariable(engine, v_OutputUserVariableName, nameof(v_OutputUserVariableName), this); client.Disconnect(true, cancel.Token); client.ServerCertificateValidationCallback = null; } } }
public void connect() { using (ImapClient client = new ImapClient()) // using (PopClient pop = new PopClient("pop.gmail.com")) { int pops = 1; // Connect and login. client.Connect("imap.gmail.com", 993, true); Console.WriteLine("Connected."); client.Authenticate(name, pass); Console.WriteLine("Authenticated."); var inbox = client.Inbox; inbox.Open(MailKit.FolderAccess.ReadOnly); int count = inbox.Count; // Check if there are any messages available on the server. if (inbox.Count == 0) { return; } var query = SearchQuery.DeliveredAfter(DateTime.Parse("2020-03-11")).And(SearchQuery.BodyContains("is inviting you to a scheduled Zoom meeting.")); foreach (var uid in inbox.Search(query)) { // Download message. MimeMessage message = inbox.GetMessage(uid); // Display message sender and subject. //Console.WriteLine(); //Console.WriteLine($"From: {message.From}"); //Console.WriteLine($"Subject: {message.Subject}"); emails.Append($"From: {message.From}"); emails.Append($"Subject: {message.Subject}"); // Display message body. // Console.WriteLine("Body:"); string body = string.IsNullOrEmpty(message.HtmlBody) ? message.TextBody : message.HtmlBody; MatchCollection matches = ZoomId.Matches(body); MatchCollection joinlinks = ZoomJoinUrl.Matches(body); long lid = 0; string link = ""; if (matches.Count == 0 || joinlinks.Count == 0) { pops++; continue; } if (matches.Count > 0) { Match match = ZoomId.Matches(body)[0]; string id = match.Value; id = id.Replace(" ", ""); lid = long.Parse(id); } if (joinlinks.Count > 0) { Match linksys = ZoomJoinUrl.Matches(body)[0]; link = linksys.Value; } MatchCollection times = ZoomTime.Matches(body); DateTime time = new DateTime(); if (times.Count > 0) { Match match = ZoomTime.Matches(body)[0]; time = DateTime.ParseExact(match.Groups[1].Value, "MMM d, yyyy hh:mm tt", CultureInfo.InvariantCulture); } var meeting = new Meeting() { Id = lid, JoinUrl = link, StartTime = time, }; Console.WriteLine(lid); meetings.Add(meeting); emails.Append(body); } } }
/// <summary> /// Gets mail headers /// </summary> /// <param name="searchTerm"></param> /// <returns></returns> public static ObservableCollection <MailHeader> GetMailHeaders(string searchTerm) { ObservableCollection <MailHeader> headerList = new ObservableCollection <MailHeader>(); if (LoggedIn) { var inbox = client.Inbox; inbox.Open(FolderAccess.ReadWrite); //Debug.WriteLine("Total messages: {0}", inbox.Count); var orderBy = new[] { OrderBy.ReverseArrival }; List <IMessageSummary> msgList = null; //If the searchTerm isnt null or empty, search for messages matching the searchterm and sort them //in reverse arrival order if (!string.IsNullOrEmpty(searchTerm)) { //Search query var query = (SearchQuery.SubjectContains(searchTerm)).Or(SearchQuery.BodyContains(searchTerm)); //Searches the mail folder using the query var uidList = inbox.Search(query); if (uidList.Count != 0) { //Fetches the messagesummaries of uidList msgList = inbox.Fetch(uidList, MessageSummaryItems.Envelope | MessageSummaryItems.UniqueId).ToList(); //Sorts msgList in reverse arrival sort order MessageSorter.Sort(msgList, orderBy); isMailSearchSuccess = true; } else { isMailSearchSuccess = false; return(null); } } //If the searchTerm is null or empty, fetch all messagesummaries and sort them in //reverse arrival order else { //Fetches all messagesummaries msgList = inbox.Fetch(0, -1, MessageSummaryItems.Envelope | MessageSummaryItems.UniqueId).ToList(); if (msgList.Count != 0) { //Sorts msgList in reverse arrival sort order MessageSorter.Sort(msgList, orderBy); } else { return(null); } } foreach (MessageSummary summary in msgList) { MailHeader mailHeader = ConvertMessageSummary(summary); headerList.Add(mailHeader); } } else { if (Login()) { GetMailHeaders(searchTerm); } } return(headerList); }
public static void ShowEmailsByFolderByDate(string folderName, string searchedString) { using (var client = new ImapClient()) { // For demo-purposes, accept all SSL certificates client.ServerCertificateValidationCallback = (s, c, h, e) => true; client.Connect("imap.gmail.com", 993, true); // Note: since we don't have an OAuth2 token, disable // the XOAUTH2 authentication mechanism. client.AuthenticationMechanisms.Remove("XOAUTH2"); client.Authenticate(SendEmailMIMEKIT.selfUserName, SendEmailMIMEKIT.selfKeyWord); // Get the first personal namespace and list the toplevel folders under it. var personal = client.GetFolder(client.PersonalNamespaces[0]); IMailFolder searchedFolder; DataManager.emailList.Clear(); foreach (var folder in personal.GetSubfolders(false)) { if (folder.Name.Equals(folderName)) { searchedFolder = folder; searchedFolder.Open(FolderAccess.ReadOnly); // let's search for all messages received after Jan 12, 2013 with "MailKit" in the subject... var query = SearchQuery.DeliveredAfter(DateTime.Parse("2013-01-12")) .And(SearchQuery.SubjectContains(searchedString)).And(SearchQuery.Seen) .And(SearchQuery.BodyContains(searchedString)).And(SearchQuery.Seen); foreach (var uid in searchedFolder.Search(query)) { var message = searchedFolder.GetMessage(uid); Console.WriteLine("[match] {0}: {1}", uid, message.Subject); Email tempEmail = new Email(message); DataManager.emailList.Add(tempEmail, null); } } foreach (var foldery in folder.GetSubfolders(false)) { if (foldery.Name.Equals(folderName)) { searchedFolder = foldery; searchedFolder.Open(FolderAccess.ReadOnly); // let's search for all messages received after Jan 12, 2013 with "MailKit" in the subject... var query = SearchQuery.DeliveredAfter(DateTime.Parse("2013-01-12")) .And(SearchQuery.SubjectContains(searchedString)).And(SearchQuery.Seen); foreach (var uid in searchedFolder.Search(query)) { var message = searchedFolder.GetMessage(uid); Console.WriteLine("[match] {0}: {1}", uid, message.Subject); Email tempEmail = new Email(message); DataManager.emailList.Add(tempEmail, null); } } } } client.Disconnect(true); } }
public int Execute() { //IMAPServerName = "imap.gmail.com"; //UserName = "******"; //Password = ""; //Port = 993; //markAsRead = true; try { var client = VariableStorage.EmailVar[EmailtoSaveVar].Item2; if (!client.IsConnected) { client.Connect(IMAPServerName, Port, SecureSocketOptions.SslOnConnect); client.AuthenticationMechanisms.Remove("XOAUTH2"); client.Authenticate(UserName, Password); } var working_folder = client.GetFolder(VariableStorage.EmailVar[EmailtoSaveVar].Item3); working_folder.Open(FolderAccess.ReadOnly); Dictionary <string, IMailFolder> retrievedFolder = new Dictionary <string, IMailFolder>(); SearchResults results = new SearchResults(); // search from folder if (RetrieveSchema == 0) { results = working_folder.Search(SearchOptions.All, SearchQuery.Not(SearchQuery.Seen).And((SearchQuery.SubjectContains(SubjectSearch).Or(SearchQuery.ToContains(ToSearch).Or(SearchQuery.FromContains(FromSearch).Or(SearchQuery.BodyContains(BodySearch))))))); } else if (RetrieveSchema == 1) { results = working_folder.Search(SearchOptions.All, SearchQuery.SubjectContains(SubjectSearch).Or(SearchQuery.ToContains(ToSearch).Or(SearchQuery.FromContains(FromSearch).Or(SearchQuery.BodyContains(BodySearch))))); } if (VariableStorage.EmailVar.ContainsKey(EmailtoSaveVar)) { VariableStorage.EmailVar.Remove(EmailtoSaveVar); } VariableStorage.EmailVar.Add(EmailtoSaveVar, Tuple.Create(this.ID, client, FolderPath, (object)results.UniqueIds)); // marks as read if (markAsRead) { foreach (var uniqueId in results.UniqueIds) { var message = working_folder.GetMessage(uniqueId); working_folder.AddFlags(uniqueId, MessageFlags.Seen, true); } } // attachment download if (AttchmentSchemaIndex == 1) { foreach (UniqueId uid in results.UniqueIds) { MimeMessage message = client.Inbox.GetMessage(uid); foreach (MimeEntity attachment in message.Attachments) { var fileName = attachment.ContentDisposition?.FileName ?? attachment.ContentType.Name; using (var stream = System.IO.File.Create(@AttchmentPath + fileName)) { if (attachment is MessagePart) { var rfc822 = (MessagePart)attachment; rfc822.Message.WriteTo(stream); } else { var part = (MimeKit.MimePart)attachment; part.ContentObject.DecodeTo(stream); } } } } } return(1); } catch (Exception ex) { return(0); } }
public void TestArgumentExceptions() { Assert.Throws <ArgumentNullException> (() => SearchQuery.And(null, SearchQuery.All)); Assert.Throws <ArgumentNullException> (() => SearchQuery.And(SearchQuery.All, null)); Assert.Throws <ArgumentNullException> (() => SearchQuery.AnnotationsContain(null, AnnotationAttribute.Value, "value")); Assert.Throws <ArgumentNullException> (() => SearchQuery.AnnotationsContain(AnnotationEntry.AltSubject, null, "value")); Assert.Throws <ArgumentException> (() => SearchQuery.AnnotationsContain(AnnotationEntry.AltSubject, AnnotationAttribute.Size, "value")); Assert.Throws <ArgumentNullException> (() => SearchQuery.BccContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.BccContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.BodyContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.BodyContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.CcContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.CcContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.DoesNotHaveCustomFlag(null)); Assert.Throws <ArgumentException> (() => SearchQuery.DoesNotHaveCustomFlag(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.DoesNotHaveCustomFlags(null)); Assert.Throws <ArgumentException> (() => SearchQuery.DoesNotHaveCustomFlags(new string[0])); Assert.Throws <ArgumentException> (() => SearchQuery.DoesNotHaveFlags(MessageFlags.None)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Filter(null)); Assert.Throws <ArgumentException> (() => SearchQuery.Filter(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.FromContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.FromContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Fuzzy(null)); Assert.Throws <ArgumentNullException> (() => SearchQuery.GMailRawSearch(null)); Assert.Throws <ArgumentException> (() => SearchQuery.GMailRawSearch(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HasCustomFlag(null)); Assert.Throws <ArgumentException> (() => SearchQuery.HasCustomFlag(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HasCustomFlags(null)); Assert.Throws <ArgumentException> (() => SearchQuery.HasCustomFlags(new string[0])); Assert.Throws <ArgumentException> (() => SearchQuery.HasFlags(MessageFlags.None)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HasKeyword(null)); Assert.Throws <ArgumentException> (() => SearchQuery.HasKeyword(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HasKeywords(null)); Assert.Throws <ArgumentException> (() => SearchQuery.HasKeywords(new string[0])); Assert.Throws <ArgumentException> (() => SearchQuery.HasKeywords(new string[] { "keyword", null })); Assert.Throws <ArgumentException> (() => SearchQuery.NotFlags(MessageFlags.None)); Assert.Throws <ArgumentNullException> (() => SearchQuery.NotKeyword(null)); Assert.Throws <ArgumentException> (() => SearchQuery.NotKeyword(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.NotKeywords(null)); Assert.Throws <ArgumentException> (() => SearchQuery.NotKeywords(new string[0])); Assert.Throws <ArgumentException> (() => SearchQuery.NotKeywords(new string [] { "keyword", null })); Assert.Throws <ArgumentNullException> (() => SearchQuery.HasGMailLabel(null)); Assert.Throws <ArgumentException> (() => SearchQuery.HasGMailLabel(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.HeaderContains(null, "text")); Assert.Throws <ArgumentException> (() => SearchQuery.HeaderContains(string.Empty, "text")); Assert.Throws <ArgumentNullException> (() => SearchQuery.HeaderContains("name", null)); Assert.Throws <ArgumentOutOfRangeException> (() => SearchQuery.LargerThan(-1)); Assert.Throws <ArgumentNullException> (() => SearchQuery.MessageContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.MessageContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Not(null)); Assert.Throws <ArgumentOutOfRangeException> (() => SearchQuery.OlderThan(-1)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Or(null, SearchQuery.All)); Assert.Throws <ArgumentNullException> (() => SearchQuery.Or(SearchQuery.All, null)); Assert.Throws <ArgumentOutOfRangeException> (() => SearchQuery.SmallerThan(-1)); Assert.Throws <ArgumentNullException> (() => SearchQuery.SubjectContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.SubjectContains(string.Empty)); Assert.Throws <ArgumentNullException> (() => SearchQuery.ToContains(null)); Assert.Throws <ArgumentException> (() => SearchQuery.ToContains(string.Empty)); Assert.Throws <ArgumentOutOfRangeException> (() => SearchQuery.YoungerThan(-1)); Assert.Throws <ArgumentNullException> (() => SearchQuery.All.And(null)); Assert.Throws <ArgumentNullException> (() => SearchQuery.All.Or(null)); Assert.Throws <ArgumentNullException> (() => new BinarySearchQuery(SearchTerm.And, null, SearchQuery.All)); Assert.Throws <ArgumentNullException> (() => new BinarySearchQuery(SearchTerm.And, SearchQuery.All, null)); Assert.Throws <ArgumentNullException> (() => new FilterSearchQuery(null)); Assert.Throws <ArgumentException> (() => new FilterSearchQuery(string.Empty)); Assert.Throws <ArgumentException> (() => new FilterSearchQuery(MetadataTag.Create("/dev/null"))); Assert.Throws <ArgumentNullException> (() => new HeaderSearchQuery(null, "text")); Assert.Throws <ArgumentException> (() => new HeaderSearchQuery(string.Empty, "text")); Assert.Throws <ArgumentNullException> (() => new HeaderSearchQuery("name", null)); Assert.Throws <ArgumentNullException> (() => new TextSearchQuery(SearchTerm.BodyContains, null)); Assert.Throws <ArgumentNullException> (() => new UidSearchQuery(null)); Assert.Throws <ArgumentException> (() => new UidSearchQuery(new UniqueIdSet())); Assert.Throws <ArgumentException> (() => new UidSearchQuery(UniqueId.Invalid)); Assert.Throws <ArgumentNullException> (() => new UnarySearchQuery(SearchTerm.Not, null)); }
private async void GetMessgesContainingMenuClick(Object sender, System.EventArgs e) { SearchRequestStringsWindow mySearchString = new SearchRequestStringsWindow(); if (mySearchString.ShowDialog() == true) { if (mySearchString.SortRequestTbx.Text != "") { query = SearchQuery.SubjectContains(mySearchString.SortRequestTbx.Text).Or(SearchQuery.BodyContains(mySearchString.SortRequestTbx.Text)); MessagesListTemp = await OperateData.Operating.CustomsDownloadBodyPartsAsync(OperateData.Operating.AccountsUpload()[IndexOfDynamicList], FolderName, query); messagesDetailsDataGrid.ItemsSource = MessagesListTemp; if (MessagesListTemp.Count > 0) { AddingMessagePartsToWindow(MessagesListTemp[0]); } else { MessageBox.Show("Selected folder is empty!"); } } else { MessageBox.Show("Enter a Request to Sort Messages!"); } } }