public ImapClient(string hostname, int port, string username, string password, bool ssl = false)
{
this.hostname = hostname;
this.username = username;
this.password = password;
this.port = port;
this.ssl = ssl;
RemoteCertificateValidationCallback validate = null;
TcpClient client = new TcpClient(hostname, port);
stream = client.GetStream();
SslStream sslStream = new SslStream(stream, false, validate ??
((sender, cert, chain, err) => true));
sslStream.AuthenticateAsClient(hostname);
stream = sslStream;
List<string> str = readstreamdata("* OK");
string tagStr = GetTag();
writestreamdata(tagStr + "LOGIN " + QuoteString(username) + " " + QuoteString(password) + "\r\n");
readstreamdata(tagStr + "OK");
}