public static List<Message> FetchAllMessages(string hostname, int port, string username, string password, string proxyIp, int proxyPort)
{
using (Pop3Client client = new Pop3Client())
{
var proxyClient = new HttpProxyClient(proxyIp, proxyPort);
using (var sslStream = new SslStream(proxyClient.CreateConnection(hostname, port).GetStream()))
{
sslStream.AuthenticateAsClient(hostname);
client.Connect(sslStream);
client.Authenticate(username, password);
int messageCount = client.GetMessageCount();
List<Message> allMessages = new List<Message>(messageCount);
for (int i = messageCount; i > 0; i--)
{
allMessages.Add(client.GetMessage(i));
}
return allMessages;
}
}
}
更新:
在returnallmessages上放置一个断点;如果将其悬停在sslStream对象上,则不会释放它。