/// <summary> /// Удаляет все письма с сервера. /// </summary> /// <param name="Login">Логин</param> /// <param name="Password">Пароль</param> /// <param name="Server">POP3 сервер</param> /// <param name="Port">порт</param> /// <param name="UseSSL">использовать или нет SSL</param> public static void DeleteAllEmails(string Login, string Password, string Server, int Port, bool UseSSL) { using (Pop3Client client = new Pop3Client()) { client.Connect(Server, Port, UseSSL); client.Authenticate(Login, Password, AuthenticationMethod.UsernameAndPassword); try { client.DeleteAllMessages(); } catch (OpenPop.Pop3.Exceptions.PopServerException ex) { Log.MesQuestion("Скорее всего превышено количество запросов"); Log.MesQuestion(ex.Message); } } }
public void TestDeleteAllMessages() { const string welcomeMessage = "+OK"; const string okUsername = "******"; const string okPassword = "******"; const string messageCountResponse = "+OK 2 5"; // 2 messages with total size of 5 octets const string deleteResponse = "+OK"; // Message was deleted const string quitAccepted = "+OK"; const string serverResponses = welcomeMessage + "\r\n" + okUsername + "\r\n" + okPassword + "\r\n" + messageCountResponse + "\r\n" + deleteResponse + "\r\n" + deleteResponse + "\r\n" + quitAccepted + "\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"); // Delete all the messages client.DeleteAllMessages(); // Check that message 1 and message 2 was deleted string[] commandsFired = GetCommands(new StreamReader(new MemoryStream(outputStream.ToArray())).ReadToEnd()); bool message1Deleted = false; bool message2Deleted = false; foreach (string commandFired in commandsFired) { if (commandFired.Equals("DELE 1")) message1Deleted = true; if (commandFired.Equals("DELE 2")) message2Deleted = true; } // We expect message 1 to be deleted Assert.IsTrue(message1Deleted); // We expect message 2 to be deleted Assert.IsTrue(message2Deleted); // Quit and commit client.Disconnect(); const string expectedOutputAfterQuit = "QUIT"; string outputAfterQuit = GetLastCommand(new StreamReader(new MemoryStream(outputStream.ToArray())).ReadToEnd()); // We now expect that the client has sent the QUIT command Assert.AreEqual(expectedOutputAfterQuit, outputAfterQuit); }