C# обрабатывает ответ TELNET от почтового сервера
Всем привет,
Я хочу закодировать приложение, чтобы определить, существует ли электронная почта или нет. Шаги здесь:
Шаг 1. telnet mta7.am0.yahoodns.net 25 // подключение к почтовому серверу yahoo
Шаг 2. EHLO hi // скажи helo
Шаг 3. почта от: <test@gmail.com> // проверить отправителя
Шаг 4. rcpt to: <lisa@yahoo.com> // проверить приемник
Но я получил ответ только на шаг 1. И пропустил ответ с шага 2,3,4.
Я получил этот ответ только ниже (Шаг 1):
220 mta4051.mail.gq1.yahoo.com ESMTP ready
Пожалуйста, дайте мне решение. Большое спасибо!
Что я уже пробовал:
Мой код:
static void Main(string[] args) { TcpClient tcpClient; NetworkStream networkStream; StreamWriter streamWriter; tcpClient = new TcpClient("mta7.am0.yahoodns.net", 25); byte[] writeBuffer; byte[] readBuffer; using (networkStream = tcpClient.GetStream()) { networkStream.Flush(); writeBuffer = System.Text.Encoding.ASCII.GetBytes("EHLO hi" + Environment.NewLine); networkStream.Write(writeBuffer, 0, writeBuffer.Length); networkStream.Flush(); writeBuffer = System.Text.Encoding.ASCII.GetBytes("mail from: <test@gmail.com>" + Environment.NewLine); networkStream.Write(writeBuffer, 0, writeBuffer.Length); networkStream.Flush(); writeBuffer = System.Text.Encoding.ASCII.GetBytes("rcpt to: <lisa@yahoo.com>" + Environment.NewLine); networkStream.Write(writeBuffer, 0, writeBuffer.Length); networkStream.Flush(); string output = null; if (networkStream.CanRead) { readBuffer = new byte[tcpClient.ReceiveBufferSize]; networkStream.Read(readBuffer, 0, tcpClient.ReceiveBufferSize); output = System.Text.Encoding.ASCII.GetString(readBuffer).Trim(); Console.WriteLine(output); } Console.ReadLine(); } }
Richard Deeming
Попробуйте прочитать ответ от одной команды до посылаю следующую команду.