bool SendEHello()//4 { IAsyncResult result = EHelloCommand.BeginSend(connection, connection.client.clientDomain, sendEHelloCallback, this); if (result.CompletedSynchronously) { connection.extensions = EHelloCommand.EndSend(result); connection.ParseExtensions(connection.extensions); // If we already have a TlsStream, this is the second EHLO cmd // that we sent after TLS handshake compelted. So skip TLS and // continue with Authenticate. if (connection.pooledStream.NetworkStream is TlsStream) { Authenticate(); return(true); } if (connection.EnableSsl) { #if !FEATURE_PAL if (!connection.serverSupportsStartTls) { // Either TLS is already established or server does not support TLS if (!(connection.pooledStream.NetworkStream is TlsStream)) { throw new SmtpException(SR.GetString(SR.MailServerDoesNotSupportStartTls)); } } SendStartTls(); #else // FEATURE_PAL throw new NotSupportedException("ROTORTODO"); #endif // !FEATURE_PAL } else { Authenticate(); } return(true); } return(false); }
private bool SendEHello() { IAsyncResult result = EHelloCommand.BeginSend(_connection, _connection._client.clientDomain, s_sendEHelloCallback, this); if (result.CompletedSynchronously) { _connection._extensions = EHelloCommand.EndSend(result); _connection.ParseExtensions(_connection._extensions); // If we already have a TlsStream, this is the second EHLO cmd // that we sent after TLS handshake compelted. So skip TLS and // continue with Authenticate. if (_connection._networkStream is TlsStream) { Authenticate(); return(true); } if (_connection.EnableSsl) { if (!_connection._serverSupportsStartTls) { // Either TLS is already established or server does not support TLS if (!(_connection._networkStream is TlsStream)) { throw new SmtpException(SR.Format(SR.MailServerDoesNotSupportStartTls)); } } SendStartTls(); } else { Authenticate(); } return(true); } return(false); }