Beispiel #1
0
        public static void Worker(string[] args)
        {
            //#if PUBLIC_BUILD
            if (!Globals.IsValid())
                return;
            //#endif

            if (args[0] == "activatemail" && args.Length != 4)
            {
                ConsoleLog.WriteLine("activatemail pop_server login password");
                return;
            }
            if (args[0] == "activatelist" && args.Length != 2)
            {
                ConsoleLog.WriteLine("activatelist mailboxes_file");
                return;
            }

            NickNameAndPasswordGenerator gen = new NickNameAndPasswordGenerator("", 0);
            List<string> mailBoxes = null;
            if (args[0] == "activatemail")
            {
                mailBoxes = new List<string>();
                mailBoxes.Add(args[1] + ';' + args[2] + ';' + args[3] + ";xxx");
            }
            if (args[0] == "activatelist")
            {
                mailBoxes = gen.GetMailListBoxs(args[1]);
            }

            foreach (var mailbox in mailBoxes)
            {
                mailclient = new Pop3.Pop3Client();
                messagesToDelete = new List<Pop3Message>();
                messNumber = 0;
                messCount = 0;
                ConsoleLog.WriteLine("Connecting to " + mailbox.Split(';')[0]);
                mailclient.Connect(mailbox.Split(';')[0], mailbox.Split(';')[1], mailbox.Split(';')[2]);
                ConsoleLog.WriteLine("Logged in. Retrieving message list...");
                List<Pop3Message> messages = mailclient.List();
                mailclient.Retrieve(messages);

                int poolsize = Globals.threadCount;
                if ((args[0] == "activatelist") || (Globals.BotConfig.useTOR))
                    poolsize = 1;

                try
                {
                    messCount = messages.Count;
                    NerZul.Core.Utils.Bicycles.ThreadPool.ExecInPool(ActivateProc, messages, poolsize, true, Globals.ShowDlg);

                    if (args[0] == "activatelist")
                    {
                        gen.FixBoxAct(mailbox.Split(';')[3]);
                    }
                }
                catch (System.Exception e)
                {
                    ConsoleLog.WriteLine("Activate mail error: " + e.Message);
                }

                ConsoleLog.WriteLine("Deleteing processed messages...");
                mailclient.Delete(messagesToDelete);
                ConsoleLog.WriteLine("Disconnecting...");
                mailclient.Disconnect();
                ConsoleLog.WriteLine("Finished");

                messagesToDelete.Clear();
            }
        }