I am trying to connect to a SendGrid SMTP service over a secured connection. However, when I try to authenticate the TLS handshake, I get an System.IO.IOException
saying "The handshake failed due to an unexpected packet format." I have confirmed the port is 587 and it should connect over TLS 1.2.
Note that I am not sending an email message and I do not want to use the SmtpClient
.
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var server = "smtp.sendgrid.com";
var port = 587;
using (var client = new TcpClient()) {
client.Connect(server, port);
using (var stream = client.GetStream())
using (var sslStream = new SslStream(stream)) {
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());
}
}
}