public void StartTls(string host) { SetupCommandTimeout(); if (!SupportedCommands.Contains(SmtpCommands.Starttls))//если возможно передача данных по защищенному протоколу { throw new SmtpException("Not supported"); } var reply = SendCommand(SmtpCommands.Starttls); if (reply.Code != SmtpReplyCode.ServiceReady) { throw new SmtpException(); } var tls = _tlsProvider.AuthenticateAsClient(_stream, host); _stream = tls; _reader = new SmtpControlStreamReader(tls); }
public void Connect(string host, int port) { if (Proxy != null) { Proxy.ConnectTimeout = ConnectTimeout; Proxy.ReadTimeout = ReadTimeout; Proxy.WriteTimeout = WriteTimeout; _tcpClient = Proxy.CreateConnection(host, port); } else { _tcpClient = new TcpClient(AddressFamily.InterNetwork);//создание подключения по схеме адресации IP-адрес версии 4. _tcpClient.Connect(host, port); } _stream = _tcpClient.GetStream();//получаем ответ с сервера if (ReadTimeout >= 0) { _tcpClient.ReceiveTimeout = ReadTimeout; } if (WriteTimeout >= 0) { _tcpClient.SendTimeout = WriteTimeout; } _reader = new SmtpControlStreamReader(_stream); SetupCommandTimeout(); var greetingReply = _reader.ReadServerReply(); if (greetingReply.Code != SmtpReplyCode.ServiceReady)//если отчет положительный ,то продолжаем работу { throw new SmtpException(); } Greeting = greetingReply.Message; }