Example #1
0
        private void startprocess(string logindetails, string imapselect, bool sendmail, string smtptet)
        {
            try
            {
                int    type   = 0;
                Socket socket = null;

                if (proxies.Count > 0)
                {
                    type = 1;
                    ProxyFactory factory = new ProxyFactory();
                    string       proxi   = proxies[rad.Next(proxies.Count)];
                    string[]     prox    = proxi.Split(':');
                    IProxyClient proxy   = null;
                    if (prox.Length == 4)
                    {
                        proxy = factory.CreateProxy(ProxyType.Http, prox[0], Convert.ToInt32(prox[1]), prox[2], prox[3]);
                    }
                    else
                    {
                        proxy = factory.CreateProxy(ProxyType.Http, prox[0], Convert.ToInt32(prox[1]));
                    }
                    socket = proxy.Connect(imapselect, Imap.DefaultSSLPort);
                }
                using (Imap imap = new Imap())
                {
                    if (type == 0)
                    {
                        imap.ConnectSSL(imapselect);
                    }
                    else
                    {
                        imap.AttachSSL(socket, imapselect);
                    }
                    string[] cred = logindetails.Split(':');
                    imap.Login(cred[0], cred[1]);                   // You can also use: LoginPLAIN, LoginCRAM, LoginDIGEST, LoginOAUTH methods,
                    CommonFolders folders = new CommonFolders(imap.GetFolders());
                    imap.Select(folders.Spam);
                    foreach (long ouid in imap.GetAll())
                    {
                        IMail email = new MailBuilder().CreateFromEml(
                            imap.GetMessageByUID(ouid));

                        List <long> unseenReports = new List <long>();
                        foreach (string sub in subjects)
                        {
                            if (email.Subject.Contains(sub) || string.Equals(email.Subject, sub))
                            {
                                unseenReports.Add(ouid);

                                if (!checkBox1.Checked && sendmail && !radioButton4.Checked)
                                {
                                    IMail  original = email;
                                    Socket socket1  = null;
                                    if (proxies.Count > 0)
                                    {
                                        type = 1;
                                        ProxyFactory factory = new ProxyFactory();
                                        string       proxi   = proxies[rad.Next(proxies.Count)];
                                        string[]     prox    = proxi.Split(':');
                                        IProxyClient proxy   = null;
                                        if (prox.Length == 4)
                                        {
                                            proxy = factory.CreateProxy(ProxyType.Http, prox[0], Convert.ToInt32(prox[1]), prox[2], prox[3]);
                                        }
                                        else
                                        {
                                            proxy = factory.CreateProxy(ProxyType.Http, prox[0], Convert.ToInt32(prox[1]));
                                        }
                                        socket1 = proxy.Connect(smtptet, portsmtp);
                                    }
                                    ReplyBuilder replyBuilder = original.Reply();

                                    // You can specify your own, custom, body and subject templates:
                                    replyBuilder.HtmlReplyTemplate    = @"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">
    <html>
    <head>
        <meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8"" />
        <title>[Subject]</title>
    </head>
    <body>
    [Html]
    <br /><br />
    On [Original.Date] [Original.Sender.Name] wrote:
    <blockquote style=""margin-left: 1em; padding-left: 1em; border-left: 1px #ccc solid;"">
        [QuoteHtml]
    </blockquote>
    </body>
    </html>";
                                    replyBuilder.SubjectReplyTemplate = "Re: [Original.Subject]";

                                    replyBuilder.Html = NewSpin.Spin(textBox1.Text);

                                    MailBuilder builder = replyBuilder.ReplyToAll(cred[0]);

                                    // You can add attachments to your reply
                                    //builder.AddAttachment("report.csv");

                                    IMail reply = builder.Create();
                                    using (Smtp smtp = new Smtp())
                                    {
                                        if (type == 0)
                                        {
                                            if (radioButton3.Checked || radioButton4.Checked)
                                            {
                                                smtp.Connect(smtptet, portsmtp);
                                                smtp.StartTLS();
                                            }
                                            else
                                            {
                                                smtp.ConnectSSL(smtptet, portsmtp);
                                            }
                                        }
                                        else
                                        {
                                            if (radioButton3.Checked || radioButton4.Checked)
                                            {
                                                smtp.Attach(socket1);
                                                smtp.StartTLS();
                                            }
                                            else
                                            {
                                                smtp.AttachSSL(socket1, smtptet);
                                            }
                                        }
                                        smtp.ReceiveTimeout = new TimeSpan(0, 0, 100);
                                        //MessageBox.Show("Sending Mail");
                                        smtp.UseBestLogin(cred[0], cred[1]);
                                        smtp.SendMessage(reply);
                                        smtp.Close();
                                    }
                                }
                            }
                        }

                        foreach (long uid in unseenReports)        // Download emails from the last result.
                        {
                            // MessageBox.Show(uid.ToString());
                            imap.MoveByUID(uid, folders.Inbox);

                            imap.FlagMessageByUID(uid, Flag.Seen);
                            movedcount = movedcount + 1;
                        }
                    }
                    imap.Close();
                }
            }
            catch (Exception exp)
            {
                //MessageBox.Show(exp.ToString());
            }
            finally
            {
                count = count + 1;
            }
        }