示例#1
0
        /// <summary>
        /// Gets into Yahoo Email and fetches Activation Link and Sends Http Request to it
        /// Calls LoginVerfy() which sends Http Request
        /// Also sends sends Request to gif URL, and 2 more URLs
        /// </summary>
        /// <param name="yahooEmail"></param>
        /// <param name="yahooPassword"></param>
        #region GetFBMails
        public void GetFBMails(string yahooEmail, string yahooPassword)
        {
            Username = yahooEmail;
            Password = yahooPassword;
            //Username = "******";
            //Password = "******";
            iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");

            //iMap.
            //iMap.HttpProxyHostname = "127.0.0.1";
            //iMap.HttpProxyPort = 8888;

            iMap.Connect("imap.n.mail.yahoo.com");
            iMap.Login(yahooEmail, yahooPassword);
            iMap.SelectMailbox("Inbox");

            // Get a message set containing all the message IDs
            // in the selected mailbox.
            Chilkat.MessageSet msgSet;
            //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);
            msgSet = iMap.GetAllUids();

            // Fetch all the mail into a bundle object.
            Chilkat.Email email = new Chilkat.Email();
            //bundle = iMap.FetchBundle(msgSet);
            string        strEmail = string.Empty;
            List <string> lstData  = new List <string>();

            if (msgSet != null)
            {
                for (int i = msgSet.Count; i > 0; i--)
                {
                    email    = iMap.FetchSingle(msgSet.GetId(i), true);
                    strEmail = email.Subject;
                    string emailHtml = email.GetHtmlBody();
                    lstData.Add(strEmail);
                    if (email.Subject.Contains("Action Required: Confirm Your Facebook Account"))
                    {
                        foreach (string href in GetUrlsFromString(email.Body))
                        {
                            try
                            {
                                string staticUrl             = string.Empty;
                                string email_open_log_picUrl = string.Empty;

                                string   strBody = email.Body;
                                string[] arr     = Regex.Split(strBody, "src=");
                                foreach (string item in arr)
                                {
                                    if (!item.Contains("<!DOCTYPE"))
                                    {
                                        if (item.Contains("static"))
                                        {
                                            string[] arrStatic = item.Split('"');
                                            staticUrl = arrStatic[1];
                                        }
                                        if (item.Contains("email_open_log_pic"))
                                        {
                                            string[] arrlog_pic = item.Split('"');
                                            email_open_log_picUrl = arrlog_pic[1];
                                            email_open_log_picUrl = email_open_log_picUrl.Replace("amp;", "");
                                            break;
                                        }
                                    }
                                }

                                string href1 = href.Replace("&amp;report=1", "");
                                href1 = href.Replace("amp;", "");

                                //LoginVerfy(href1, staticUrl, email_open_log_picUrl);
                                break;
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.StackTrace);
                            }
                        }
                        //return;
                    }
                    else if (email.Subject.Contains("Just one more step to get started on Facebook"))
                    {
                        foreach (string href in GetUrlsFromString(email.Body))
                        {
                            try
                            {
                                string staticUrl             = string.Empty;
                                string email_open_log_picUrl = string.Empty;

                                string   strBody = email.Body;
                                string[] arr     = Regex.Split(strBody, "src=");
                                foreach (string item in arr)
                                {
                                    if (!item.Contains("<!DOCTYPE"))
                                    {
                                        if (item.Contains("static"))
                                        {
                                            string[] arrStatic = item.Split('"');
                                            staticUrl = arrStatic[1];
                                        }
                                        if (item.Contains("email_open_log_pic"))
                                        {
                                            string[] arrlog_pic = item.Split('"');
                                            email_open_log_picUrl = arrlog_pic[1];
                                            email_open_log_picUrl = email_open_log_picUrl.Replace("amp;", "");
                                            break;
                                        }
                                    }
                                }


                                string href1 = href.Replace("&amp;report=1", "");
                                href1 = href.Replace("amp;", "");

                                //LoginVerfy(href1, staticUrl, email_open_log_picUrl);
                                break;
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.StackTrace);
                            }
                        }
                        //return;
                    }
                }
            }
        }
示例#2
0
        public bool EmailVerification(string Email, string Password, ref GlobusHttpHelper globushttpHelper)
        {
            bool IsActivated = false;

            try
            {
                Log("[ " + DateTime.Now + " ] => [ Please Wait Account Verification Start... ]");

                System.Windows.Forms.Application.DoEvents();
                Chilkat.Http http = new Chilkat.Http();

                if (Email.Contains("@yahoo"))
                {
                    #region Yahoo Verification Steps

                    GlobusHttpHelper HttpHelper = new GlobusHttpHelper();
                    bool             activate   = false;
                    try
                    {
                        bool emaildata = false;
                        //Chilkat.Http http = new Chilkat.Http();
                        ///Chilkat Http Request to be used in Http Post...
                        Chilkat.HttpRequest req = new Chilkat.HttpRequest();
                        bool success;

                        // Any string unlocks the component for the 1st 30-days.
                        success = http.UnlockComponent("THEBACHttp_b3C9o9QvZQ06");
                        if (success != true)
                        {
                            Console.WriteLine(http.LastErrorText);
                            return(false);
                        }

                        http.CookieDir   = "memory";
                        http.SendCookies = true;
                        http.SaveCookies = true;

                        //http.ProxyDomain = "127.0.0.1";
                        //http.ProxyPort = 8888;
                        http.SetRequestHeader("Accept-Encoding", "gzip,deflate");
                        Chilkat.Imap iMap     = new Imap();
                        string       Username = Email;

                        iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");
                        //iMap.
                        //iMap.HttpProxyHostname = "127.0.0.1";
                        //iMap.HttpProxyPort = 8888;

                        iMap.Port = 993;
                        iMap.Connect("imap.n.mail.yahoo.com");
                        iMap.Login(Email, Password);
                        iMap.SelectMailbox("Inbox");

                        // Get a message set containing all the message IDs
                        // in the selected mailbox.
                        Chilkat.MessageSet msgSet;
                        //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);

                        msgSet = iMap.GetAllUids();


                        if (msgSet.Count <= 0)
                        {
                            msgSet = iMap.GetAllUids();
                        }

                        // Fetch all the mail into a bundle object.
                        Chilkat.Email email = new Chilkat.Email();
                        //bundle = iMap.FetchBundle(msgSet);
                        string        strEmail = string.Empty;
                        List <string> lstData  = new List <string>();
                        if (msgSet != null)
                        {
                            for (int i = 0; i < msgSet.Count; i++)
                            {
                                try
                                {
                                    email    = iMap.FetchSingle(msgSet.GetId(i), true);
                                    strEmail = email.Subject;
                                    string emailHtml = email.GetHtmlBody();
                                    lstData.Add(strEmail);

                                    string from = email.From.ToString().ToLower();

                                    if (from.Contains("@linkedin.com"))
                                    {
                                        foreach (string href in GetUrlsFromString(email.Body))
                                        {
                                            try
                                            {
                                                if (href.Contains("http://www.linkedin.com/e/csrf") || href.Contains("http://www.linkedin.com/e/ato") || href.Contains("http://www.linkedin.com/e/v2?e"))
                                                {
                                                    string EscapeEmail = Uri.EscapeDataString(Email).Replace(".", "%2E").Trim();
                                                    {
                                                        string ConfirmationResponse = globushttpHelper.getHtmlfromUrl1(new Uri(href));
                                                        IsActivated = true;
                                                        break;
                                                    }
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                Console.WriteLine("6 :" + ex.StackTrace);
                                            }
                                        }
                                    }
                                    if (IsActivated)
                                    {
                                        Log("[ " + DateTime.Now + " ] => [ Account : " + Email + " verified ]");
                                        break;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("Error >>> " + ex.StackTrace);
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("7 :" + ex.StackTrace);
                        Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + "StackTrace --> >>>" + ex.StackTrace + " with : " + Email + " ]");
                        Log("[ " + DateTime.Now + " ] => [ Please check your Login Id and Password ]");
                    }
                    return(IsActivated);

                    #endregion
                }
                else
                {
                    string Host = string.Empty;
                    int    Port = 0;
                    if (Email.Contains("@gmail"))
                    {
                        Host = "pop.gmail.com";
                        Port = 995;
                    }
                    else if (Email.Contains("@hotmail"))
                    {
                        Host = "pop3.live.com";
                        Port = 995;
                    }
                    else if (Email.Contains("@gmx"))
                    {
                        Host = "pop.gmx.com";
                        Port = 995;
                    }
                    if (!string.IsNullOrEmpty(Host))
                    {
                        try
                        {
                            if (popClient.Connected)
                            {
                                popClient.Disconnect();
                            }
                            popClient.Connect(Host, Port, true);
                            popClient.Authenticate(Email, Password);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.StackTrace);

                            //retry once
                            System.Threading.Thread.Sleep(1000);

                            if (popClient.Connected)
                            {
                                popClient.Disconnect();
                            }
                            popClient.Connect(Host, Port, true);
                            popClient.Authenticate(Email, Password);
                        }


                        //if (!)
                        //{

                        //}

                        int Count = popClient.GetMessageCount();

                        for (int i = Count; i >= 1; i--)
                        {
                            try
                            {
                                OpenPOP.MIME.Message Message = popClient.GetMessage(i);
                                string subject = string.Empty;
                                subject = Message.Headers.Subject;
                                string frowwm      = Message.Headers.From.ToString();
                                bool   GoIntoEmail = false;

                                if (string.IsNullOrEmpty(subject))
                                {
                                    string from = Message.Headers.From.ToString().ToLower();
                                    if (from.Contains("linkedin.com"))
                                    {
                                        GoIntoEmail = true;
                                    }
                                }
                                try
                                {
                                    if (frowwm.Contains("linkedin.com"))
                                    //if(GoIntoEmail)
                                    {
                                        string Messagebody = Message.MessageBody[0];

                                        foreach (string href in GetUrlsFromStringGmail(Messagebody))
                                        {
                                            try
                                            {
                                                if (href.Contains("http://www.linkedin.com/e/csrf") || href.Contains("http://www.linkedin.com/e/ato") || href.Contains("http://www.linkedin.com/e/v2?e"))
                                                {
                                                    string href1       = href.Replace("amp;", string.Empty);
                                                    string EscapeEmail = Uri.EscapeDataString(Email).Replace(".", "%2E").Trim();
                                                    {
                                                        string ConfirmationResponse = globushttpHelper.getHtmlfromUrl1(new Uri(href1));
                                                        IsActivated = true;
                                                        break;
                                                    }
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                Console.WriteLine("5 :" + ex.StackTrace);
                                            };
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("10 :" + ex.StackTrace);
                                    Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + "StackTrace --> >>>" + ex.StackTrace + " with : " + Email + " ]");
                                }
                                if (IsActivated)
                                {
                                    break;
                                }
                            }
                            catch (Exception ex)
                            {
                                {
                                    Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + "StackTrace --> >>>" + ex.StackTrace + " with : " + Email + " ]");
                                    Log("[ " + DateTime.Now + " ] => [ Please check your Login Id and Password ]");
                                }
                            }
                        }
                    }
                }
                return(IsActivated);
            }
            catch (Exception ex)
            {
                Console.WriteLine("4 :" + ex.StackTrace);
                return(IsActivated);
            }
        }
        /// <summary>
        /// Gets into Yahoo Email and fetches Activation Link and Sends Http Request to it
        /// Calls LoginVerfy() which sends Http Request
        /// Also sends sends Request to gif URL, and 2 more URLs
        /// </summary>
        /// <param name="yahooEmail"></param>
        /// <param name="yahooPassword"></param>
        public void GetFBMails(string yahooEmail, string yahooPassword)
        {
            try
            {
                string realEmail = yahooEmail;

                if (yahooEmail.Contains("+") || yahooEmail.Contains("%2B"))
                {
                    try
                    {
                        string replacePart = yahooEmail.Substring(yahooEmail.IndexOf("+"), (yahooEmail.IndexOf("@", yahooEmail.IndexOf("+")) - yahooEmail.IndexOf("+"))).Replace("+", string.Empty);
                        yahooEmail = yahooEmail.Replace("+", string.Empty).Replace("%2B", string.Empty).Replace(replacePart, string.Empty);
                    }
                    catch
                    {
                    }
                }

                Username = yahooEmail;
                Password = yahooPassword;
                //Username = "******";
                //Password = "******";
                iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");

                //iMap.
                //iMap.HttpProxyHostname = "127.0.0.1";
                //iMap.HttpProxyPort = 8888;

                iMap.Connect("imap.n.mail.yahoo.com");
                iMap.Login(yahooEmail, yahooPassword);
                iMap.SelectMailbox("Inbox");

                // Get a message set containing all the message IDs
                // in the selected mailbox.
                Chilkat.MessageSet msgSet;
                //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);
                msgSet = iMap.GetAllUids();

                // Fetch all the mail into a bundle object.
                Chilkat.Email email = new Chilkat.Email();
                //bundle = iMap.FetchBundle(msgSet);
                string strEmail = string.Empty;
                List<string> lstData = new List<string>();
                if (msgSet != null)
                {
                    for (int i = msgSet.Count; i > 0; i--)
                    {
                        email = iMap.FetchSingle(msgSet.GetId(i), true);
                        strEmail = email.Subject;
                        string emailHtml = email.GetHtmlBody();
                        lstData.Add(strEmail);
                        if (email.Subject.Contains("Action Required: Confirm Your Facebook Account"))
                        {
                            foreach (string href in GetUrlsFromString(email.Body))
                            {
                                try
                                {
                                    string staticUrl = string.Empty;
                                    string email_open_log_picUrl = string.Empty;

                                    string strBody = email.Body;
                                    string[] arr = Regex.Split(strBody, "src=");
                                    // string[] arr = Regex.Split(strBody, "href=");
                                    foreach (string item in arr)
                                    {
                                        if (!item.Contains("<!DOCTYPE"))
                                        {
                                            if (item.Contains("static"))
                                            {
                                                string[] arrStatic = item.Split('"');
                                                staticUrl = arrStatic[1];
                                            }
                                            if (item.Contains("email_open_log_pic"))
                                            {
                                                string[] arrlog_pic = item.Split('"');
                                                email_open_log_picUrl = arrlog_pic[1];
                                                email_open_log_picUrl = email_open_log_picUrl.Replace("amp;", "");
                                                break;
                                            }
                                        }
                                    }

                                    string href1 = href.Replace("&amp;report=1", "");
                                    href1 = href.Replace("amp;", "");

                                    EmailVerificationMultithreaded(href1, staticUrl, email_open_log_picUrl, realEmail, yahooPassword, proxyAddress, proxyPort, proxyUser, proxyPass);
                                    //LoginVerfy(href1, staticUrl, email_open_log_picUrl);
                                    break;
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.StackTrace);
                                }
                            }
                            //return;
                        }
                        else if (email.Subject.Contains("Just one more step to get started on Facebook"))
                        {
                            foreach (string href in GetUrlsFromString(email.Body))
                            {
                                try
                                {
                                    string staticUrl = string.Empty;
                                    string email_open_log_picUrl = string.Empty;
                                    string verifyhref = string.Empty;
                                    string strBody = email.Body;
                                    string[] arr = Regex.Split(strBody, "src=");
                                    string[] arr1 = Regex.Split(strBody, "href=");
                                    foreach (string item in arr)
                                    {
                                        if (!item.Contains("<!DOCTYPE"))
                                        {
                                            if (item.Contains("static"))
                                            {
                                                string[] arrStatic = item.Split('"');
                                                staticUrl = arrStatic[1];
                                            }
                                            if (item.Contains("email_open_log_pic"))
                                            {
                                                string[] arrlog_pic = item.Split('"');
                                                email_open_log_picUrl = arrlog_pic[1];
                                                email_open_log_picUrl = email_open_log_picUrl.Replace("amp;", "");
                                                break;
                                            }
                                        }
                                    }

                                    foreach (string item1 in arr1)
                                    {
                                        if (item1.Contains("confirmemail.php"))
                                        {
                                            string[] itemurl = Regex.Split(item1, "\"");
                                            verifyhref = itemurl[1].Replace("\"", string.Empty);
                                        }
                                    }

                                    string href1 = verifyhref.Replace("&amp;report=1", "");
                                    string href11 = href1.Replace("amp;", "");
                                    //string href1 = href.Replace("&amp;report=1", "");
                                    //href1 = href.Replace("amp;", "");
                                    if (href.Contains("confirmemail.php") && email_open_log_picUrl.Contains("email_open_log_pic.php"))
                                    {
                                        EmailVerificationMultithreaded(href11, staticUrl, email_open_log_picUrl, realEmail, yahooPassword, proxyAddress, proxyPort, proxyUser, proxyPass);
                                        //LoginVerfy(href1, staticUrl, email_open_log_picUrl);
                                        break;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.StackTrace);
                                }
                            }
                            //return;
                        }

                        //*****************************************************bysanjeev**********************
                        else if (email.Subject.Contains("Facebook Email Verification"))
                        {
                            foreach (string href in GetUrlsFromString(email.Body))
                            {
                                try
                                {
                                    string staticUrl = string.Empty;
                                    string email_open_log_picUrl = string.Empty;
                                    string verifyhref = string.Empty;

                                    string strBody = email.Body;
                                    string[] arr = Regex.Split(strBody, "src=");
                                    string[] arr1 = Regex.Split(strBody, "href=");
                                    // string[] arr = Regex.Split(strBody, "src=");
                                    foreach (string item in arr)
                                    {
                                        if (!item.Contains("<!DOCTYPE"))
                                        {
                                            if (item.Contains("static"))
                                            {
                                                string[] arrStatic = item.Split('"');
                                                staticUrl = arrStatic[1];
                                            }
                                            if (item.Contains("email_open_log_pic"))
                                            {
                                                string[] arrlog_pic = item.Split('"');
                                                email_open_log_picUrl = arrlog_pic[1];
                                                email_open_log_picUrl = email_open_log_picUrl.Replace("amp;", "");
                                                break;
                                            }
                                        }
                                    }
                                    foreach (string item1 in arr1)
                                    {
                                        if (item1.Contains("confirmcontact.php"))
                                        {
                                            string[] itemurl = Regex.Split(item1, "\"");
                                            verifyhref = itemurl[1].Replace("\"", string.Empty);
                                        }
                                    }


                                    //string href1 = href.Replace("&amp;report=1", "");
                                    //href1 = href.Replace("&amp", "");
                                    if (href.Contains("confirmcontact.php") && email_open_log_picUrl.Contains("email_open_log_pic.php"))
                                    {
                                        EmailVerificationMultithreaded(verifyhref, staticUrl, email_open_log_picUrl, realEmail, yahooPassword, proxyAddress, proxyPort, proxyUser, proxyPass);
                                        break;
                                    }//LoginVerfy(href1, staticUrl, email_open_log_picUrl);

                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.StackTrace);
                                }
                            }
                            //return;
                        }

                        //****************************************************************************************

                    }
                }
            }
            catch (Exception ex)
            {
                GlobusLogHelper.log.Error("Error : " + ex.StackTrace);
            }
        }
        /// <summary>
        /// Get all the leads from the database and do stuff with them.  That doesn't sound very good does it.
        /// </summary>
        /// <param name="testLead">(Optional) A test lead to send to rather than DB leads.</param>
        /// <remarks>
        /// This should probably go in ApplicationManager with callbacks and stuff for logging.  Todo.
        /// </remarks>
        private void ProcessNewDatabaseLeads(Lead testLead)
        {
            const string genericTeamName        = "WARRIORS";
            const string defaultTemplateDesc1   = "Football";
            const string defaultTemplateDesc2   = "Baseball";
            const int    customJersyImageWidth  = 150;
            const string imagesSubdir           = "images";
            const string commonSubdir           = "common";
            const string tempSubdir             = "temp";
            const int    maxNumLeadsCommonSense = 5;
            int          sendRetries            = 0;

            //
            // Debugging mode doesn't send emails to leads, but it sends them to a test account.
            //
            bool debugging = _settings.DebuggingMode;

            Log("Processing new leads in db, debugging mode: {0}...", debugging);

            string errMsg          = string.Empty;
            string outputEmailFile = Functions.BuildFilenameFromElements(_settings.EmailSrcDir, "output-temp.htm");
            //
            // Read header row, then read the row we want.
            //
            StreamReader reader            = File.OpenText(Functions.BuildFilenameFromElements(_settings.EmailSrcDir, string.Format("lead-email-{0}.htm", _settings.EmailTemplateNo)));
            string       emailTemplateOrig = reader.ReadToEnd();

            reader.Close();


            //  The mailman object is used for sending and receiving email.
            Chilkat.MailMan mailman = new Chilkat.MailMan();

            // The MHT component can be used to convert an HTML page
            // from a URL, file, or in-memory HTML into an email
            // with embedded images and style sheets.
            Chilkat.Mht mht = new Chilkat.Mht();


            //  Any string argument automatically begins the 30-day trial.
            bool success;

            // success = mailman.UnlockComponent(Config.ChilkatUnlockCodeEmail);
            success = mailman.UnlockComponent(ChilkatRegCodes.ChilkatEmail);
            if (success != true)
            {
                Log("Component unlock failed");
                return;
            }

            // success = mht.UnlockComponent(Config.ChilkatUnlockCodeEmail);
            success = mht.UnlockComponent(ChilkatRegCodes.ChilkatMHT);
            if (success != true)
            {
                Log("Mht component unlock failed");
                return;
            }

            //  Set the SMTP server.
            mailman.SmtpHost = Config.LeadMailboxServer;

            //  Set the SMTP login/password (if required)
            mailman.SmtpUsername = Config.LeadMailboxLoginUID;
            mailman.SmtpPassword = Config.LeadMailboxLoginPW;

            //
            // Set up parameters to append to all the email links so Google Analytics can track the clicks for us.
            //
            Campaign campaign = new Campaign();

            // Todo: grab this from the db & config file
            campaign.Source  = "fundraisingweb";
            campaign.Medium  = (debugging || testLead != null) ? "testing" : "email";
            campaign.Content = _settings.EmailTemplateNo;


            List <Lead> leads;

            if (testLead == null)
            {
                Log("Getting leads from db...");
                leads = DataManager.GetNewFundraisingLeads();
            }
            else
            {
                leads = new List <Lead>();
                leads.Add(testLead);
            }

            if (leads.Count > maxNumLeadsCommonSense)
            {
                string msg = string.Format("An unusually high amount of leads were returned from the db ({0}), do you wish to send emails anyway?", leads.Count);
                if (MessageBox.Show(msg, "Sanity Check", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    // Close the program
                    btnClose_Click(null, null);
                }
            }

            foreach (Lead lead in leads)
            {
                Log("Processing lead: {0}", lead);

                if (!_doingProcessing && testLead == null)
                {
                    //
                    // We were signalled to stop processing
                    //
                    Log("User signalled to quit, exiting...");
                    return;
                }

                string emailTemplate = emailTemplateOrig;

                //Lead lead = leads[0];
                // ApplicationManager.SetFundraisingIdeasProperties(lead);

                // const int totalNumberOfTemplates = 5;

                // string templateDescShort = Functions.FirstNonemptyString(lead.TemplateDescShort, "Football");

                //
                // Otherwise, make it 1 so that we put in two different template graphics.
                //
                // int altTemplate = lead.TemplateDescShort == string.Empty ? 1 : 0;
                string customName;

                if (!Functions.IsEmptyString(lead.LastName) && lead.LastName.Length <= 13)
                {
                    customName = lead.LastName;
                }
                else if (!Functions.IsEmptyString(lead.FirstName) && lead.LastName.Length <= 13)
                {
                    customName = lead.FirstName;
                }
                else
                {
                    customName = "anyname";
                }

                customName = customName.ToUpper();

                string customNumber = string.Format("{0:yy}", DateTime.Now);

                Template template1 = lead.TemplateCurrent;
                Template template2 = lead.TemplateCurrent;

                // If we have a specific template specified, use them both.  Otherwise, use the default and another one.
                if (template1 == null)
                {
                    template1 = DataManager.GetTemplate(defaultTemplateDesc1);
                    // template2 = DataManager.GetTemplate(((template1.TemplateId + 1) % totalNumberOfTemplates + 1) + 1);
                    template2 = DataManager.GetTemplate(defaultTemplateDesc2);
                }

                //Template template1 = DataManager.GetTemplate(templateDescShort);
                //Template template2 = DataManager.GetTemplate((template1.TemplateId + altTemplate) % totalNumberOfTemplates);

                PlayerSeason example1 = new PlayerSeason(customName, customNumber);
                PlayerSeason example2 = new PlayerSeason(genericTeamName, customNumber);

                example1.TemplateCurrent = template1;
                example2.TemplateCurrent = template2;

                string example1File  = string.Format("{0}_{1:000}_{2}_{3}.jpg", template1.TemplateDescShort, template1.TemplateId, customName, customNumber);
                string example1FPath = Functions.BuildFilenameFromElements(
                    _settings.EmailSrcDir,
                    imagesSubdir,
                    tempSubdir,
                    example1File);

                string example2File  = string.Format("{0}_{1:000}_{2}_{3}.jpg", template2.TemplateDescShort, template2.TemplateId, genericTeamName, customNumber);
                string example2FPath = Functions.BuildFilenameFromElements(
                    _settings.EmailSrcDir,
                    imagesSubdir,
                    commonSubdir,
                    example2File);

                Log("Creating image: {0}", example1File);
                ApplicationManager.WritePlayerMarketingGIFFile(example1, customJersyImageWidth, example1FPath, debugging);

                Log("Creating image: {0}", example2File);
                ApplicationManager.WritePlayerMarketingGIFFile(example2, customJersyImageWidth, example2FPath, debugging);

                //
                // Personalize the email.
                //
                Dictionary <string, string> replacements = new Dictionary <string, string>();

                replacements.Add("[cust_fname]", Functions.TitleCase(Functions.FirstNonemptyString(lead.FirstName.ToLower(), lead.LastName.ToLower(), "Hi future fundraiser")));
                replacements.Add("[current_year_2digit]", customNumber);
                replacements.Add("[homepage_href]", ApplicationManager.BuildWebsiteLink(null, campaign));

                string addtlLi = string.Empty;
                if (lead.IsAthletics)
                {
                    addtlLi = string.Format("<li>Your {0} team!</li>", lead.TemplateCurrent.TemplateDescShort);
                }
                replacements.Add("[perfect_for_addtl_li]", addtlLi);

                replacements.Add("[specific_jersey_href]", ApplicationManager.BuildWebsiteLink(example1, campaign));
                replacements.Add("[alternate_jersey_href]", ApplicationManager.BuildWebsiteLink(example2, campaign));

                replacements.Add("[specific_jersey_image]", Functions.BuildUrlFromElements(imagesSubdir, tempSubdir, example1File));
                replacements.Add("[alternate_jersey_image]", Functions.BuildUrlFromElements(imagesSubdir, commonSubdir, example2File));

                replacements.Add("[homepage_href_fundraisingpage]", ApplicationManager.BuildWebsiteLink(null, campaign, Config.WebsiteFundraisingPage));
                replacements.Add("[unsubscribe_url]", string.Format("mailto:{0}?subject=unsubscribe&body=Your%20stickers%20are%20great%20but%20please%20unsubscribe%20me.", Config.LeadMailboxLoginUID));

                replacements.Add("[how_user_entered_info]", "to the \"Fundraising Ideas\" website");

                //
                // Validate the row, all these fields must be there or we're wasting our time.
                //
                foreach (KeyValuePair <string, string> replacement in replacements)
                {
                    if (!emailTemplate.Contains(replacement.Key))
                    {
                        errMsg = string.Format("Cannot find required value in output file: \"{0}\"", replacement.Key);
                        throw new ApplicationException(errMsg);

                        //
                        // Do something with the error here.
                        //
                    }
                    else
                    {
                        emailTemplate = emailTemplate.Replace(replacement.Key, replacement.Value);
                    }
                }

                MatchCollection leftovers1 = Regex.Matches(emailTemplate, "(\\[.*\\])");

                if (leftovers1.Count > 0)
                {
                    string msg = "You need to implement the following tokens:\r\n\r\n";

                    foreach (Match token in leftovers1)
                    {
                        msg = Functions.BuildStringFromElementsWithDelimiter(msg, token.Groups[0].ToString(), "\r\n");
                    }

                    MessageBox.Show(msg, "Fix These", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    return;
                }

                string emailSubject = Functions.GetValueFromText(emailTemplate, "<title>(.*)</title>");


                Functions.WriteStringAsFile(emailTemplate, outputEmailFile);

                Log("Done creating email, now gonna email it.");

                //  Create a new email object
                Chilkat.Email email = new Chilkat.Email();

                // Embed the images in the email - Outlook friendly.
                mht.UseCids = true;

                // Create an email from an HTML file.
                email = mht.GetEmail(outputEmailFile);
                if (email == null)
                {
                    MessageBox.Show(mht.LastErrorText);
                    return;
                }

                email.Subject = emailSubject;
                // email.Body = "This is a test";
                email.From    = string.Format("Fan Favorite Designs <{0}>", Config.LeadMailboxLoginUID);
                email.ReplyTo = Config.LeadMailboxLoginUID;

                if (debugging)
                {
                    email.AddTo("Lead Monitor", "*****@*****.**");
                }
                else
                {
                    email.AddTo(lead.BuildFullName(), lead.EmailAddress);
                    // email.AddBcc("Lead Monitor", "*****@*****.**");
                }

                Chilkat.HtmlToText h2t = new Chilkat.HtmlToText();
                // success = h2t.UnlockComponent(Config.ChilkatUnlockCodeEmail);
                success = h2t.UnlockComponent(ChilkatRegCodes.ChilkatHTMLtoXML);
                if (success != true)
                {
                    MessageBox.Show(h2t.LastErrorText);
                    return;
                }

                //  Get the email's HTML body.
                string html;
                html = email.GetHtmlBody();

                //  Convert it to plain text:
                string plainText;
                plainText = h2t.ToText(html);

                // Add a few things so the email makes sense.
                plainText = string.Format("This email was meant to be viewed in HTML mode.  You can visit \r\nour website here to get a better look at our product.\r\n\r\n    {0}\r\n{1}", ApplicationManager.BuildWebsiteLink(null, campaign), plainText);

                //  Add a plain-text alternative to the email:
                email.AddPlainTextAlternativeBody(plainText);

                //  Call SendEmail to connect to the SMTP server and send.
                //  The connection (i.e. session) to the SMTP server remains
                //  open so that subsequent SendEmail calls may use the
                //  same connection.
                Log("Sending SMTP mail...");
                success = mailman.SendEmail(email);
                if (success != true)
                {
                    sendRetries++;

                    if (sendRetries < 5)
                    {
                        Log("Can't send email, gonna hang out for a bit, and try again.");
                        Thread.Sleep(20000);
                    }
                    else
                    {
                        throw new ApplicationException("Cannot send email - cannot continue.");
                    }
                }
                else if (!debugging && testLead == null)
                {
                    //
                    // Update the DB indicating that we sent the email so we don't do it again.
                    //
                    bool res = DataManager.AddLeadStatusLog(lead, Lead.LeadStatusCode.lscEmailSent, string.Format("lead-email-{0}.htm", _settings.EmailTemplateNo));

                    if (res)
                    {
                        Log("Updated status log - all good.");
                    }
                    else
                    {
                        Log("Yikes, can't update status log that we emailed!  Bombing out.");
                        throw new ApplicationException("Cannot update status log - cannot continue.");
                    }
                    sendRetries = 0;
                }
                else
                {
                    Log("Email success; debug mode - not updating DB");
                    sendRetries = 0;
                }

                //  Some SMTP servers do not actually send the email until
                //  the connection is closed.  In these cases, it is necessary to
                //  call CloseSmtpConnection for the mail to be  sent.
                //  Most SMTP servers send the email immediately, and it is
                //  not required to close the connection.  We'll close it here
                //  for the example:
                success = mailman.CloseSmtpConnection();
                if (success != true)
                {
                    Log("Connection to SMTP server not closed cleanly.");
                    throw new ApplicationException("Cannot disconnect from SMTP server cleanly - cannot continue.");
                }
            }

            Log("Cleaning up temp files, if any.");
            string tempDirPath = Functions.BuildFilenameFromElements(
                _settings.EmailSrcDir,
                imagesSubdir,
                tempSubdir);

            string[] tempFiles = Directory.GetFiles(tempDirPath);
            foreach (string file in tempFiles)
            {
                File.Delete(file);
            }

            // todo: add icon to exe

            // todo: buy chilkat components

            Log("Processing of db leads completed");
        }
示例#5
0
        public bool GetYahooMails(string yahooEmail, string yahooPassword)
        {
            GlobusHttpHelper HttpHelper = new GlobusHttpHelper();
            bool             activate   = false;

            try
            {
                bool emaildata = false;

                Chilkat.Http http = new Chilkat.Http();



                ///Chilkat Http Request to be used in Http Post...
                Chilkat.HttpRequest req = new Chilkat.HttpRequest();
                bool success;

                // Any string unlocks the component for the 1st 30-days.
                success = http.UnlockComponent("THEBACHttp_b3C9o9QvZQ06");
                if (success != true)
                {
                    Console.WriteLine(http.LastErrorText);
                    return(false);
                }
                http.CookieDir   = "memory";
                http.SendCookies = true;
                http.SaveCookies = true;

                //http.ProxyDomain = "127.0.0.1";
                //http.ProxyPort = 8888;



                http.SetRequestHeader("Accept-Encoding", "gzip,deflate");



                Chilkat.Imap iMap     = new Imap();
                string       Username = yahooEmail;
                string       Password = yahooPassword;
                //Username = "******";
                //Password = "******";
                iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");

                //iMap.
                //iMap.HttpProxyHostname = "127.0.0.1";
                //iMap.HttpProxyPort = 8888;

                iMap.Connect("imap.n.mail.yahoo.com");
                iMap.Login(yahooEmail, yahooPassword);
                iMap.SelectMailbox("Inbox");

                // Get a message set containing all the message IDs
                // in the selected mailbox.
                Chilkat.MessageSet msgSet;
                //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);
                msgSet = iMap.GetAllUids();

                // Fetch all the mail into a bundle object.
                Chilkat.Email email = new Chilkat.Email();
                //bundle = iMap.FetchBundle(msgSet);
                string        strEmail = string.Empty;
                List <string> lstData  = new List <string>();
                if (msgSet != null)
                {
                    for (int i = msgSet.Count; i > 0; i--)
                    {
                        email    = iMap.FetchSingle(msgSet.GetId(i), true);
                        strEmail = email.Subject;
                        string emailHtml = email.GetHtmlBody();
                        lstData.Add(strEmail);


                        if (email.Subject.Contains("[WordPress] Activate") && email.Subject.Contains("wordpress.com"))
                        {
                            foreach (string href in GetUrlsFromString(email.Body))
                            {
                                try
                                {
                                    string staticUrl = string.Empty;


                                    staticUrl = href;
                                    responce  = http.QuickGetStr(staticUrl);

                                    if (responce.Contains("Your account is now active"))
                                    {
                                        emaildata = true;
                                        //Log("your Account is activate now");
                                        activate = true;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.StackTrace);
                                }
                            }
                        }
                    }
                }
                if (emaildata == false)
                {
                    Log("[ " + DateTime.Now + " ] => [ activation link is not find in user account so your Account is not activate please activate now ]");
                }
            }
            catch (Exception ex)
            {
            }
            return(activate);
        }
示例#6
0
        public bool GetYahooMails(string yahooEmail, string yahooPassword)
        {
            GlobusHttpHelper HttpHelper = new GlobusHttpHelper();
            bool activate = false;
            try
            {
                bool emaildata = false;

                Chilkat.Http http = new Chilkat.Http();

                ///Chilkat Http Request to be used in Http Post...
                Chilkat.HttpRequest req = new Chilkat.HttpRequest();
                bool success;

                // Any string unlocks the component for the 1st 30-days.
                success = http.UnlockComponent("THEBACHttp_b3C9o9QvZQ06");
                if (success != true)
                {
                    Console.WriteLine(http.LastErrorText);
                    return false;
                }
                http.CookieDir = "memory";
                http.SendCookies = true;
                http.SaveCookies = true;

                //http.ProxyDomain = "127.0.0.1";
                //http.ProxyPort = 8888;

                http.SetRequestHeader("Accept-Encoding", "gzip,deflate");

                Chilkat.Imap iMap = new Imap();
                string Username = yahooEmail;
                string Password = yahooPassword;
                //Username = "******";
                //Password = "******";
                iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");

                //iMap.
                //iMap.HttpProxyHostname = "127.0.0.1";
                //iMap.HttpProxyPort = 8888;

                iMap.Connect("imap.n.mail.yahoo.com");
                iMap.Login(yahooEmail, yahooPassword);
                iMap.SelectMailbox("Inbox");

                // Get a message set containing all the message IDs
                // in the selected mailbox.
                Chilkat.MessageSet msgSet;
                //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);
                msgSet = iMap.GetAllUids();

                // Fetch all the mail into a bundle object.
                Chilkat.Email email = new Chilkat.Email();
                //bundle = iMap.FetchBundle(msgSet);
                string strEmail = string.Empty;
                List<string> lstData = new List<string>();
                if (msgSet != null)
                {
                    for (int i = msgSet.Count; i > 0; i--)
                    {
                        email = iMap.FetchSingle(msgSet.GetId(i), true);
                        strEmail = email.Subject;
                        string emailHtml = email.GetHtmlBody();
                        lstData.Add(strEmail);

                        if (email.Subject.Contains("[WordPress] Activate") && email.Subject.Contains("wordpress.com"))
                        {
                            foreach (string href in GetUrlsFromString(email.Body))
                            {
                                try
                                {

                                    string staticUrl = string.Empty;

                                    staticUrl = href;
                                    responce = http.QuickGetStr(staticUrl);

                                    if (responce.Contains("Your account is now active"))
                                    {
                                        emaildata = true;
                                        //Log("your Account is activate now");
                                        activate = true;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.StackTrace);
                                }
                            }
                        }
                    }
                }
                if (emaildata == false)
                {
                    Log("[ " + DateTime.Now + " ] => [ activation link is not find in user account so your Account is not activate please activate now ]");
                }
            }
            catch (Exception ex)
            {
            }
            return activate;
        }
示例#7
0
        public bool EmailVerification(string Email, string Password, ref GlobusHttpHelper globushttpHelper)
        {
            bool IsActivated = false;
            try
            {
                Log("[ " + DateTime.Now + " ] => [ Please Wait Account Verification Start... ]");

                System.Windows.Forms.Application.DoEvents();
                Chilkat.Http http = new Chilkat.Http();

                if (Email.Contains("@yahoo"))
                {
                    #region Yahoo Verification Steps

                    GlobusHttpHelper HttpHelper = new GlobusHttpHelper();
                    bool activate = false;
                    try
                    {
                        bool emaildata = false;
                        //Chilkat.Http http = new Chilkat.Http();
                        ///Chilkat Http Request to be used in Http Post...
                        Chilkat.HttpRequest req = new Chilkat.HttpRequest();
                        bool success;

                        // Any string unlocks the component for the 1st 30-days.
                        success = http.UnlockComponent("THEBACHttp_b3C9o9QvZQ06");
                        if (success != true)
                        {
                            Console.WriteLine(http.LastErrorText);
                            return false;
                        }

                        http.CookieDir = "memory";
                        http.SendCookies = true;
                        http.SaveCookies = true;

                        //http.ProxyDomain = "127.0.0.1";
                        //http.ProxyPort = 8888;
                        http.SetRequestHeader("Accept-Encoding", "gzip,deflate");
                        Chilkat.Imap iMap = new Imap();
                        string Username = Email;

                        iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");
                        //iMap.
                        //iMap.HttpProxyHostname = "127.0.0.1";
                        //iMap.HttpProxyPort = 8888;

                        iMap.Port = 993;
                        iMap.Connect("imap.n.mail.yahoo.com");
                        iMap.Login(Email, Password);
                        iMap.SelectMailbox("Inbox");

                        // Get a message set containing all the message IDs
                        // in the selected mailbox.
                        Chilkat.MessageSet msgSet;
                        //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);

                        msgSet = iMap.GetAllUids();

                        if (msgSet.Count <= 0)
                        {
                            msgSet = iMap.GetAllUids();
                        }

                        // Fetch all the mail into a bundle object.
                        Chilkat.Email email = new Chilkat.Email();
                        //bundle = iMap.FetchBundle(msgSet);
                        string strEmail = string.Empty;
                        List<string> lstData = new List<string>();
                        if (msgSet != null)
                        {
                            for (int i = 0; i < msgSet.Count; i++)
                            {
                                try
                                {
                                    email = iMap.FetchSingle(msgSet.GetId(i), true);
                                    strEmail = email.Subject;
                                    string emailHtml = email.GetHtmlBody();
                                    lstData.Add(strEmail);

                                    string from = email.From.ToString().ToLower();

                                    if (from.Contains("@linkedin.com"))
                                    {
                                        foreach (string href in GetUrlsFromString(email.Body))
                                        {
                                            try
                                            {

                                                if (href.Contains("http://www.linkedin.com/e/csrf") || href.Contains("http://www.linkedin.com/e/ato") || href.Contains("http://www.linkedin.com/e/v2?e"))
                                                {
                                                    string EscapeEmail = Uri.EscapeDataString(Email).Replace(".", "%2E").Trim();
                                                    {
                                                        string ConfirmationResponse = globushttpHelper.getHtmlfromUrl1(new Uri(href));
                                                        IsActivated = true;
                                                        break;
                                                    }

                                                }

                                            }
                                            catch (Exception ex)
                                            {
                                                Console.WriteLine("6 :" + ex.StackTrace);
                                            }
                                        }
                                    }
                                    if (IsActivated)
                                    {
                                        Log("[ " + DateTime.Now + " ] => [ Account : " + Email + " verified ]");
                                        break;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("Error >>> " + ex.StackTrace);
                                }
                            }
                        }

                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("7 :" + ex.StackTrace);
                        Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + "StackTrace --> >>>" + ex.StackTrace + " with : " + Email + " ]");
                        Log("[ " + DateTime.Now + " ] => [ Please check your Login Id and Password ]");
                    }
                    return IsActivated;
                    #endregion
                }
                else
                {
                    string Host = string.Empty;
                    int Port = 0;
                    if (Email.Contains("@gmail"))
                    {
                        Host = "pop.gmail.com";
                        Port = 995;
                    }
                    else if (Email.Contains("@hotmail"))
                    {
                        Host = "pop3.live.com";
                        Port = 995;
                    }
                    else if (Email.Contains("@gmx"))
                    {
                        Host = "pop.gmx.com";
                        Port = 995;
                    }
                    if (!string.IsNullOrEmpty(Host))
                    {
                        try
                        {
                            if (popClient.Connected)
                                popClient.Disconnect();
                            popClient.Connect(Host, Port, true);
                            popClient.Authenticate(Email, Password);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.StackTrace);

                            //retry once
                            System.Threading.Thread.Sleep(1000);

                            if (popClient.Connected)
                                popClient.Disconnect();
                            popClient.Connect(Host, Port, true);
                            popClient.Authenticate(Email, Password);
                        }

                        //if (!)
                        //{

                        //}

                        int Count = popClient.GetMessageCount();

                        for (int i = Count; i >= 1; i--)
                        {
                            try
                            {
                                OpenPOP.MIME.Message Message = popClient.GetMessage(i);
                                string subject = string.Empty;
                                subject = Message.Headers.Subject;
                                string frowwm = Message.Headers.From.ToString();
                                bool GoIntoEmail = false;

                                if (string.IsNullOrEmpty(subject))
                                {
                                    string from = Message.Headers.From.ToString().ToLower();
                                    if (from.Contains("linkedin.com"))
                                    {
                                        GoIntoEmail = true;
                                    }
                                }
                                try
                                {
                                    if (frowwm.Contains("linkedin.com"))
                                    //if(GoIntoEmail)
                                    {
                                        string Messagebody = Message.MessageBody[0];

                                        foreach (string href in GetUrlsFromStringGmail(Messagebody))
                                        {
                                            try
                                            {
                                                if (href.Contains("http://www.linkedin.com/e/csrf") || href.Contains("http://www.linkedin.com/e/ato") || href.Contains("http://www.linkedin.com/e/v2?e"))
                                                {
                                                  string  href1 = href.Replace("amp;",string.Empty);
                                                    string EscapeEmail = Uri.EscapeDataString(Email).Replace(".", "%2E").Trim();
                                                    {
                                                        string ConfirmationResponse = globushttpHelper.getHtmlfromUrl1(new Uri(href1));
                                                        IsActivated = true;
                                                        break;
                                                    }
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                Console.WriteLine("5 :" + ex.StackTrace);
                                            };
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("10 :" + ex.StackTrace);
                                    Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + "StackTrace --> >>>" + ex.StackTrace + " with : " + Email + " ]");
                                }
                                if (IsActivated)
                                {

                                    break;
                                }
                            }
                            catch (Exception ex)
                            {
                                {
                                    Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + "StackTrace --> >>>" + ex.StackTrace + " with : " + Email + " ]");
                                    Log("[ " + DateTime.Now + " ] => [ Please check your Login Id and Password ]");
                                }
                            }
                        }
                    }
                }
                return IsActivated;
            }
            catch (Exception ex)
            {
                Console.WriteLine("4 :" + ex.StackTrace);
                return IsActivated;
            }
        }
示例#8
0
        public void GetFBMails(string yahooEmail, string yahooPassword)
        {
            Username = yahooEmail;
            Password = yahooPassword;
            //Username = "******";
            //Password = "******";
            iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");

            //iMap.
            //iMap.HttpProxyHostname = "127.0.0.1";
            //iMap.HttpProxyPort = 8888;

            iMap.Connect("imap.n.mail.yahoo.com");
            iMap.Login(yahooEmail, yahooPassword);
            iMap.SelectMailbox("Inbox");

            // Get a message set containing all the message IDs
            // in the selected mailbox.
            Chilkat.MessageSet msgSet;
            //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);
            msgSet = iMap.GetAllUids();

            // Fetch all the mail into a bundle object.
            Chilkat.Email email = new Chilkat.Email();
            //bundle = iMap.FetchBundle(msgSet);
            string strEmail = string.Empty;
            List<string> lstData = new List<string>();
            if (msgSet != null)
            {
                for (int i = msgSet.Count; i > 0; i--)
                {
                    email = iMap.FetchSingle(msgSet.GetId(i), true);
                    strEmail = email.Subject;
                    string emailHtml = email.GetHtmlBody();
                    lstData.Add(strEmail);
                    if (email.Subject.Contains("Action Required: Confirm Your Facebook Account"))
                    {
                        foreach (string href in GetUrlsFromString(email.Body))
                        {
                            try
                            {
                                string staticUrl = string.Empty;
                                string email_open_log_picUrl = string.Empty;

                                string strBody = email.Body;
                                string[] arr = Regex.Split(strBody, "src=");
                                foreach (string item in arr)
                                {
                                    if (!item.Contains("<!DOCTYPE"))
                                    {
                                        if (item.Contains("static"))
                                        {
                                            string[] arrStatic = item.Split('"');
                                            staticUrl = arrStatic[1];
                                        }
                                        if (item.Contains("email_open_log_pic"))
                                        {
                                            string[] arrlog_pic = item.Split('"');
                                            email_open_log_picUrl = arrlog_pic[1];
                                            email_open_log_picUrl = email_open_log_picUrl.Replace("amp;", "");
                                            break;
                                        }
                                    }
                                }

                                string href1 = href.Replace("&amp;report=1", "");
                                href1 = href.Replace("amp;", "");

                                //LoginVerfy(href1, staticUrl, email_open_log_picUrl);
                                break;
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.StackTrace);
                            }
                        }
                        //return;
                    }
                    else if (email.Subject.Contains("Just one more step to get started on Facebook"))
                    {
                        foreach (string href in GetUrlsFromString(email.Body))
                        {
                            try
                            {
                                string staticUrl = string.Empty;
                                string email_open_log_picUrl = string.Empty;

                                string strBody = email.Body;
                                string[] arr = Regex.Split(strBody, "src=");
                                foreach (string item in arr)
                                {
                                    if (!item.Contains("<!DOCTYPE"))
                                    {
                                        if (item.Contains("static"))
                                        {
                                            string[] arrStatic = item.Split('"');
                                            staticUrl = arrStatic[1];
                                        }
                                        if (item.Contains("email_open_log_pic"))
                                        {
                                            string[] arrlog_pic = item.Split('"');
                                            email_open_log_picUrl = arrlog_pic[1];
                                            email_open_log_picUrl = email_open_log_picUrl.Replace("amp;", "");
                                            break;
                                        }
                                    }
                                }

                                string href1 = href.Replace("&amp;report=1", "");
                                href1 = href.Replace("amp;", "");

                                //LoginVerfy(href1, staticUrl, email_open_log_picUrl);
                                break;
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.StackTrace);
                            }
                        }
                        //return;
                    }

                }
            }
        }
示例#9
0
        public bool EmailVerification(string Email, string Password, ref GlobusHttpHelper globushttpHelper)
        {
            bool IsActivated = false;

            try
            {
                System.Windows.Forms.Application.DoEvents();
                Chilkat.Http http = new Chilkat.Http();

                if (Email.Contains("+"))
                {
                    String[] emaildata = Email.Split('+');
                    Email = (emaildata[0] + "@" + emaildata[1].Split('@')[1]).Trim();
                }

                if (Email.Contains("@yahoo"))
                {
                    #region Yahoo Verification Steps

                    GlobusHttpHelper HttpHelper = new GlobusHttpHelper();
                    bool             activate   = false;
                    try
                    {
                        bool emaildata = false;
                        //Chilkat.Http http = new Chilkat.Http();
                        ///Chilkat Http Request to be used in Http Post...
                        Chilkat.HttpRequest req = new Chilkat.HttpRequest();
                        bool success;

                        // Any string unlocks the component for the 1st 30-days.
                        success = http.UnlockComponent("THEBACHttp_b3C9o9QvZQ06");
                        if (success != true)
                        {
                            Console.WriteLine(http.LastErrorText);
                            return(false);
                        }
                        http.CookieDir   = "memory";
                        http.SendCookies = true;
                        http.SaveCookies = true;

                        //http.IPDomain = "127.0.0.1";
                        //http.IPPort = 8888;
                        http.SetRequestHeader("Accept-Encoding", "gzip,deflate");
                        Chilkat.Imap iMap     = new Imap();
                        string       Username = Email;

                        iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");
                        //iMap.
                        //iMap.HttpIPHostname = "127.0.0.1";
                        //iMap.HttpIPPort = 8888;
                        iMap.Port = 993;
                        iMap.Connect("imap.n.mail.yahoo.com");
                        iMap.Login(Email, Password);
                        iMap.SelectMailbox("Inbox");

                        // Get a message set containing all the message IDs
                        // in the selected mailbox.
                        Chilkat.MessageSet msgSet;
                        //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);
                        msgSet = iMap.GetAllUids();

                        if (msgSet.Count <= 0)
                        {
                            msgSet = iMap.GetAllUids();
                        }

                        // Fetch all the mail into a bundle object.
                        Chilkat.Email email = new Chilkat.Email();
                        //bundle = iMap.FetchBundle(msgSet);
                        string        strEmail = string.Empty;
                        List <string> lstData  = new List <string>();
                        if (msgSet != null)
                        {
                            for (int i = msgSet.Count; i > 0; i--)
                            //for (int i = 0; i < msgSet.Count; i++)
                            {
                                try
                                {
                                    email    = iMap.FetchSingle(msgSet.GetId(i), true);
                                    strEmail = email.Subject;
                                    string emailHtml = email.GetHtmlBody();
                                    lstData.Add(strEmail);

                                    string from = email.From.ToString().ToLower();

                                    if (from.Contains("twitter.com") || from.Contains("account-verification"))
                                    {
                                        #region <old User Parser
                                        //foreach (string href in GetUrlsFromString(email.Body))
                                        //{
                                        //    try
                                        //    {
                                        //        if (href.Contains("https://twitter.com/account/confirm_email/") )
                                        //        {
                                        //            string ConfirmationResponse = globushttpHelper.getHtmlfromUrl(new Uri(href), "", "");
                                        //            IsActivated = true;
                                        //        }

                                        //    }
                                        //    catch (Exception ex)
                                        //    {
                                        //        Console.WriteLine("6 :" + ex.StackTrace);
                                        //    }
                                        //}

                                        #endregion

                                        string[] arr = Regex.Split(email.Body, "href");

                                        foreach (string strhref in arr)
                                        {
                                            if (!strhref.Contains("<!DOCTYPE"))
                                            {
                                                if (strhref.Contains("https://twitter.com/account/confirm_email"))
                                                {
                                                    string AncherTag            = System.Text.RegularExpressions.Regex.Split(strhref, ">")[1];
                                                    string tempString           = AncherTag.Substring(AncherTag.IndexOf("https"));
                                                    string DataUrl              = tempString.Replace("<>", "").Replace(">", string.Empty).Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("</a", string.Empty);
                                                    string ConfirmationResponse = globushttpHelper.getHtmlfromUrl(new Uri(DataUrl), "", "");
                                                    IsActivated = true;
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    if (IsActivated)
                                    {
                                        Log("[ " + DateTime.Now + " ] => [ Account : " + Email + " verified ]");
                                        break;
                                    }
                                }
                                catch { };
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("7 :" + ex.StackTrace);
                        Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + " with : " + Email + " ]");
                    }
                    return(IsActivated);

                    #endregion
                }
                else
                {
                    string Host = string.Empty;
                    int    Port = 0;
                    if (Email.Contains("@gmail"))
                    {
                        Host = "pop.gmail.com";
                        Port = 995;
                    }
                    else if (Email.Contains("@hotmail"))
                    {
                        Host = "pop3.live.com";
                        Port = 995;
                    }
                    else if (Email.Contains("@gmx"))
                    {
                        Host = "pop.gmx.com";
                        Port = 995;
                    }
                    if (!string.IsNullOrEmpty(Host))
                    {
                        if (popClient.Connected)
                        {
                            popClient.Disconnect();
                        }
                        popClient.Connect(Host, Port, true);
                        popClient.Authenticate(Email, Password);
                        int Count = popClient.GetMessageCount();

                        for (int i = Count; i >= 1; i--)
                        {
                            try
                            {
                                OpenPOP.MIME.Message Message = popClient.GetMessage(i);
                                string subject = string.Empty;
                                subject = Message.Headers.Subject;

                                bool GoIntoEmail = false;

                                if (string.IsNullOrEmpty(subject))
                                {
                                    string from = Message.Headers.From.ToString().ToLower();
                                    if (from.Contains("twitter.com"))
                                    {
                                        GoIntoEmail = true;
                                    }
                                }
                                try
                                {
                                    if (GoIntoEmail || subject.Contains("Twitter"))
                                    //if(GoIntoEmail)
                                    {
                                        string Messagebody = Message.MessageBody[0];

                                        foreach (string href in GetUrlsFromStringGmail(Messagebody))
                                        {
                                            try
                                            {
                                                if (href.Contains("https://twitter.com/account/confirm_email/"))
                                                {
                                                    string ConfirmationResponse = globushttpHelper.getHtmlfromUrl(new Uri(href), "", "");
                                                    IsActivated = true;
                                                    break;
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                Console.WriteLine("5 :" + ex.StackTrace);
                                            };
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("10 :" + ex.StackTrace);
                                    Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + " with : " + Email + " ]");
                                }
                                if (IsActivated)
                                {
                                    break;
                                }
                            }
                            catch (Exception ex)
                            {
                                Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + " with : " + Email + " ]");
                            }
                        }
                    }
                }
                return(IsActivated);
            }
            catch (Exception ex)
            {
                Console.WriteLine("4 :" + ex.StackTrace);
                return(IsActivated);
            }
        }
示例#10
0
        public bool EmailVerification(string Email, string Password, ref GlobusHttpHelper globushttpHelper)
        {
            bool IsActivated = false;
            try
            {
                System.Windows.Forms.Application.DoEvents();
                Chilkat.Http http = new Chilkat.Http();

                if (Email.Contains("+"))
                {
                    String[] emaildata = Email.Split('+');
                    Email = (emaildata[0] +"@" +emaildata[1].Split('@')[1]).Trim();
                }

                if (Email.Contains("@yahoo"))
                {
                    #region Yahoo Verification Steps

                    GlobusHttpHelper HttpHelper = new GlobusHttpHelper();
                    bool activate = false;
                    try
                    {
                        bool emaildata = false;
                        //Chilkat.Http http = new Chilkat.Http();
                        ///Chilkat Http Request to be used in Http Post...
                        Chilkat.HttpRequest req = new Chilkat.HttpRequest();
                        bool success;

                        // Any string unlocks the component for the 1st 30-days.
                        success = http.UnlockComponent("THEBACHttp_b3C9o9QvZQ06");
                        if (success != true)
                        {
                            Console.WriteLine(http.LastErrorText);
                            return false;
                        }
                        http.CookieDir = "memory";
                        http.SendCookies = true;
                        http.SaveCookies = true;

                        //http.IPDomain = "127.0.0.1";
                        //http.IPPort = 8888;
                        http.SetRequestHeader("Accept-Encoding", "gzip,deflate");
                        Chilkat.Imap iMap = new Imap();
                        string Username = Email;

                        iMap.UnlockComponent("THEBACIMAPMAILQ_OtWKOHoF1R0Q");
                        //iMap.
                        //iMap.HttpIPHostname = "127.0.0.1";
                        //iMap.HttpIPPort = 8888;
                        iMap.Port = 993;
                        iMap.Connect("imap.n.mail.yahoo.com");
                        iMap.Login(Email, Password);
                        iMap.SelectMailbox("Inbox");

                        // Get a message set containing all the message IDs
                        // in the selected mailbox.
                        Chilkat.MessageSet msgSet;
                        //msgSet = iMap.Search("FROM \"facebookmail.com\"", true);
                        msgSet = iMap.GetAllUids();

                        if (msgSet.Count <= 0)
                        {
                            msgSet = iMap.GetAllUids();
                        }

                        // Fetch all the mail into a bundle object.
                        Chilkat.Email email = new Chilkat.Email();
                        //bundle = iMap.FetchBundle(msgSet);
                        string strEmail = string.Empty;
                        List<string> lstData = new List<string>();
                        if (msgSet != null)
                        {
                            for (int i = msgSet.Count; i > 0; i--)
                            //for (int i = 0; i < msgSet.Count; i++)
                            {
                                try
                                {
                                    email = iMap.FetchSingle(msgSet.GetId(i), true);
                                    strEmail = email.Subject;
                                    string emailHtml = email.GetHtmlBody();
                                    lstData.Add(strEmail);

                                    string from = email.From.ToString().ToLower();

                                    if (from.Contains("twitter.com") || from.Contains("account-verification"))
                                    {
                                        #region <old User Parser
                                        //foreach (string href in GetUrlsFromString(email.Body))
                                        //{
                                        //    try
                                        //    {
                                        //        if (href.Contains("https://twitter.com/account/confirm_email/") )
                                        //        {
                                        //            string ConfirmationResponse = globushttpHelper.getHtmlfromUrl(new Uri(href), "", "");
                                        //            IsActivated = true;
                                        //        }

                                        //    }
                                        //    catch (Exception ex)
                                        //    {
                                        //        Console.WriteLine("6 :" + ex.StackTrace);
                                        //    }
                                        //}

                                        #endregion

                                        string[] arr = Regex.Split(email.Body, "href");
                                     
                                        foreach (string strhref in arr)
                                        {
                                            if (!strhref.Contains("<!DOCTYPE"))
                                            {
                                                if (strhref.Contains("https://twitter.com/account/confirm_email"))
                                                {
                                                    string AncherTag = System.Text.RegularExpressions.Regex.Split(strhref, ">")[1];
                                                    string tempString = AncherTag.Substring(AncherTag.IndexOf("https"));
                                                    string DataUrl = tempString.Replace("<>", "").Replace(">", string.Empty).Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("</a", string.Empty);
                                                    string ConfirmationResponse = globushttpHelper.getHtmlfromUrl(new Uri(DataUrl), "", "");
                                                    IsActivated = true;
                                                    break;
                                                }
                                               
                                            }
                                        }
                                    }
                                    if (IsActivated)
                                    {
                                        Log("[ " + DateTime.Now + " ] => [ Account : " + Email + " verified ]");
                                        break;
                                    }
                                }
                                catch { };
                            }
                        }

                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("7 :" + ex.StackTrace);
                        Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + " with : " + Email + " ]");
                    }
                    return IsActivated;
                    #endregion
                }
                else
                {
                    string Host = string.Empty;
                    int Port = 0;
                    if (Email.Contains("@gmail"))
                    {
                        Host = "pop.gmail.com";
                        Port = 995;
                    }
                    else if (Email.Contains("@hotmail"))
                    {
                        Host = "pop3.live.com";
                        Port = 995;
                    }
                    else if (Email.Contains("@gmx"))
                    {
                        Host = "pop.gmx.com";
                        Port = 995;
                    }
                    if (!string.IsNullOrEmpty(Host))
                    {
                        if (popClient.Connected)
                            popClient.Disconnect();
                        popClient.Connect(Host, Port, true);
                        popClient.Authenticate(Email, Password);
                        int Count = popClient.GetMessageCount();

                        for (int i = Count; i >= 1; i--)
                        {
                            try
                            {
                                OpenPOP.MIME.Message Message = popClient.GetMessage(i);
                                string subject = string.Empty;
                                subject = Message.Headers.Subject;

                                bool GoIntoEmail = false;

                                if (string.IsNullOrEmpty(subject))
                                {
                                    string from = Message.Headers.From.ToString().ToLower();
                                    if (from.Contains("twitter.com"))
                                    {
                                        GoIntoEmail = true;
                                    }
                                }
                                try
                                {
                                    if (GoIntoEmail || subject.Contains("Twitter"))
                                    //if(GoIntoEmail)
                                    {
                                        string Messagebody = Message.MessageBody[0];

                                        foreach (string href in GetUrlsFromStringGmail(Messagebody))
                                        {
                                            try
                                            {
                                                if (href.Contains("https://twitter.com/account/confirm_email/"))
                                                {
                                                    string ConfirmationResponse = globushttpHelper.getHtmlfromUrl(new Uri(href), "", "");
                                                    IsActivated = true;
                                                    break;
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                Console.WriteLine("5 :" + ex.StackTrace);
                                            };
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("10 :" + ex.StackTrace);
                                    Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + " with : " + Email + " ]");
                                }
                                if (IsActivated)
                                {

                                    break;
                                }
                            }
                            catch (Exception ex)
                            {
                                Log("[ " + DateTime.Now + " ] => [ Email Verification Exception : " + ex.Message + " with : " + Email + " ]");
                            }
                        }
                    }
                }
                return IsActivated;
            }
            catch (Exception ex)
            {
                Console.WriteLine("4 :" + ex.StackTrace);
                return IsActivated;
            }
        }