using (var client = new TcpClient()) { host = "smtp.gmail.com"; var port = 465; client.Connect(host, port); // as gmail requires ssl we should use sslstream // if your smtp server doesn't support ssl you can // work directly with the underlying stream using (var stream = client.GetStream()) using (var sslstream = new SslStream(stream)) { sslstream.AuthenticateAsClient(host); using (var writer = new StreamWriter(sslstream)) using (var reader = new StreamReader(sslstream)) { string read = ""; if (stream.DataAvailable) { read = reader.ReadLine(); } if (!read.StartsWith("220")) { return false; } writer.WriteLine("EHLO " + host); writer.Flush(); do { read = reader.ReadLine(); } while (read.StartsWith("250-")); if (read.StartsWith("220") || read.StartsWith("250")) { writer.WriteLine("mail from:<test@example.com>"); writer.Flush(); read = reader.ReadLine(); if (read.StartsWith("530")) { do { read = reader.ReadLine(); } while (read.StartsWith("530-")); } if (read.StartsWith("250")) { writer.WriteLine("rcpt to:<" + _emailAddress + ">"); writer.Flush(); read = reader.ReadLine(); if (read.StartsWith("250")) { writer.WriteLine("quit"); writer.Flush(); read = reader.ReadLine(); if (read.StartsWith("221")) { return true; } } else { writer.WriteLine("quit"); writer.Flush(); } } else { writer.WriteLine("quit"); writer.Flush(); } } else { writer.WriteLine("quit"); writer.Flush(); } // gmail responds with: 220 mx.google.com esmtp } } } return true;
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)