public void WaitForMail() { var pop3Client = new Pop3Client(); pop3Client.Connect(_server, _userAddress, _password); while ((pop3Client.List() as List<Pop3Message>).Count == 0) { pop3Client.Disconnect(); Thread.Sleep(5); pop3Client.Connect(_server, _userAddress, _password); } Pop3Message message = pop3Client.List().First(); pop3Client.Retrieve(message); ProcessMessage(new OrderMessage { From = message.From }); pop3Client.Disconnect(); }
public List<Pop3Message> GetMailMessages(string mailBoxToRead, string password) { var pop3Client = new Pop3Client(); pop3Client.Connect(_server, mailBoxToRead, password); try { var polls = 0; while ((pop3Client.List() as List<Pop3Message>).Count == 0 && polls < 100) { pop3Client.Disconnect(); Thread.Sleep(5); pop3Client.Connect(_server, mailBoxToRead, password); polls++; } var pop3Messages = pop3Client.List() as List<Pop3Message>; return pop3Messages; } finally { pop3Client.Disconnect(); } }
static void Main( string[] args ) { string server = "XXXX"; string userName = "******"; string password = "******"; Pop3Client pop3Client = new Pop3Client( ); Console.WriteLine( "Connecting to POP3 server '{0}'...{1}", server, Environment.NewLine ); pop3Client.Connect( server, userName, password, true ); Console.WriteLine( "List Messages...{0}", Environment.NewLine ); List<Pop3Message> messages = pop3Client.List( ); Console.WriteLine( "Retrieve Messages...{0}", Environment.NewLine ); foreach ( Pop3Message message in messages ) { Console.WriteLine( "- Number: {0}", message.Number ); //popClient.RetrieveHeader( message ); //Console.WriteLine( "\t* Header: {0}", message.Header ); pop3Client.Retrieve( message ); Console.WriteLine( "\t* MessageID: {0}", message.MessageId ); Console.WriteLine( "\t* Date: {0}", message.Date ); Console.WriteLine( "\t* From: {0}", message.From ); Console.WriteLine( "\t* To: {0}", message.To ); Console.WriteLine( "\t* Subject: {0}", message.Subject ); Console.WriteLine( ); } Console.WriteLine( "Disconnecting...{0}", Environment.NewLine ); pop3Client.Disconnect( ); Console.ReadLine( ); }
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(); } }