Я пытаюсь подключиться к smtp.live.com с помощью класса TcpClient.Вот замечательный пример подключения к Gmail: Тестирование SMTP-сервера выполняется через C #
К сожалению, при обновлении этого для работы с smtp.live.com я получаю "IOException: рукопожатие не удалось из-за непредвиденного формата пакета ", когда вызывается метод AuthenticateAsClient.
Как обойти это?
class Program
{
static void Main(string[] args)
{
using (var client = new TcpClient())
{
var server = "smtp.live.com";
var port = 25;
client.Connect(server, port);
using (var stream = client.GetStream())
using (var sslStream = new SslStream(stream))
{
// Getting an IOException here
sslStream.AuthenticateAsClient(server);
using (var writer = new StreamWriter(sslStream))
using (var reader = new StreamReader(sslStream))
{
writer.WriteLine("EHLO " + server);
writer.Flush();
Console.WriteLine(reader.ReadLine());
}
}
}
Console.WriteLine("Press Enter to exit...");
Console.ReadLine();
}
}
Я попытался указать SslProtocol в AuthenticateAsClient.Ни Tls, ни Ssl3 не сработали.
Также попытался предоставить обратный вызов для RemoteCertificateValidation, который всегда возвращал true только в случае, если сертификат сервера был недействительным.Это тоже не сработало.
ПРИМЕЧАНИЕ: Пожалуйста, не предлагайте мне использовать SmtpClient;Мне нужно больше контроля, чем он обеспечивает.