Объясните мне пожалуйста. как определять в каком формате работает тот или иной smtp-сервер: ssl или tls. Написал клиента на c#. подключаюсь. считываю команды сервера. Вижу команду STARTTLS. Отвечаю серверу STARTTLS. А что делать дальше? Как тут можно использовать openssl? В другом случае команды разобрать не могу. значит ssl. Использую функции openssl. посылаю ehlo получаю ответ. а вот вторая команда уже не проходит. Можно привести пример кода для работы с ssl и tls. Проблемы c gmail. Стандартные framework-овские sslstream не подходит так как пишу для compact framework.
System.Text.ASCIIEncoding oEncodedData = new System.Text.ASCIIEncoding();
NetworkStream NetStream = tcpClient.GetStream();
if (tls)
{
SslStream ss = new SslStream(NetStream, false, new RemoteCertificateValidationHandler(CertificateValidationCallback), null);
private void Write(string sMessage)
{
System.Text.ASCIIEncoding oEncodedData = new System.Text.ASCIIEncoding();
byte[] WrriteBuffer = new byte[1024];
WrriteBuffer = oEncodedData.GetBytes(sMessage);
NetworkStream NetStream = tcpClient.GetStream();
if (tls)
{
SslStream ss = new SslStream(NetStream, false, new RemoteCertificateValidationHandler(CertificateValidationCallback), null);
ss.AuthenticateAsClient("smtp.gmail.com");
ss.Write(WrriteBuffer, 0, WrriteBuffer.Length);