public void TestReset() { const string welcomeMessage = "+OK"; const string okUsername = "******"; const string okPassword = "******"; const string resetOk = "+OK"; const string serverResponses = welcomeMessage + "\r\n" + okUsername + "\r\n" + okPassword + "\r\n" + resetOk + "\r\n"; Stream inputStream = new MemoryStream(Encoding.ASCII.GetBytes(serverResponses)); MemoryStream outputStream = new MemoryStream(); Pop3Client client = new Pop3Client(); client.Connect(new CombinedStream(inputStream, outputStream)); client.Authenticate("test", "test"); client.Reset(); // Get the last command issued by the client string output = GetLastCommand(new StreamReader(new MemoryStream(outputStream.ToArray())).ReadToEnd()); // We expect it to be RSET const string expectedOutput = "RSET"; Assert.AreEqual(expectedOutput, output); }
private void ReceivingLoop() { using (Pop3Client client = new Pop3Client()) { for (; ; ) { try { if (!client.Connected) { client.Connect("pop.gmail.com", 995, true); client.Authenticate(mail_username, mail_password); List<string> uids = client.GetMessageUids(); List<Message> newMessages = new List<Message>(); for (int i = 0; i < uids.Count; i++) { string currentUidOnServer = uids[i]; Message unseenMessage = client.GetMessage(i + 1); newMessages.Add(unseenMessage); } for (int i = 0; i < newMessages.Count; i++) { Console.WriteLine("Message: " + newMessages.ElementAt(i).ToMailMessage().Body); ConvertReceivedToOrder(newMessages.ElementAt(i).Headers.Subject, newMessages.ElementAt(i).ToMailMessage().Body); } } } catch (Exception e) { Console.WriteLine("Cannot connect: " + e.Message); Thread.Sleep(2000); } finally { try { if (client.Connected) client.Disconnect(); do Thread.Sleep(500); while (client.Connected); } catch (Exception e) { Console.WriteLine("Cannot disconnect - reset connection: " + e.Message); client.Reset(); Thread.Sleep(2000); } } } } }