C#连接服务器验证帐号密码
private bool CheckSmtp(string smtpServer, int port,string username,string password) { TcpClient tcpClient = new TcpClient(smtpServer, port); NetworkStream stream = tcpClient.GetStream(); if(!WaiteFor(stream,"220")) return false ; SendCommand(stream, "HELO 211.152.50.xxx\r\n"); if (!WaiteFor(stream, "250")) return false; SendCommand(stream, "AUTH LOGIN\r\n"); if (!WaiteFor(stream, "334")) return false; SendCommand(stream,Base64Encode(username)+ "\r\n"); if (!WaiteFor(stream, "334")) return false; SendCommand(stream, Base64Encode(password) + "\r\n"); if (!WaiteFor(stream, "235")) return false; return true; } private bool WaiteFor(NetworkStream stream, string strCode) { int StreamSize; byte[] ReadBuffer = new byte[1024]; StreamSize = stream.Read(ReadBuffer, 0, ReadBuffer.Length); string Returnvalue = Encoding.Default.GetString(ReadBuffer).Substring(0, StreamSize); Console.WriteLine(Returnvalue); return Returnvalue.Substring(0, 3).Equals(strCode); } private void SendCommand(NetworkStream stream,string strCmd) { byte[] WriteBuffer; WriteBuffer = Encoding.Default.GetBytes(strCmd); stream.Write(WriteBuffer, 0, WriteBuffer.Length); } private string Base64Encode(string str) { byte[] barray; barray = Encoding.Default.GetBytes(str); return Convert.ToBase64String(barray); }