在当前项目中,我被要求通过“ Helo”的响应来检查与Smtp服务器的连接(“ Ehlo”也可以,实际上,我可以听听任何可以确认连接的建议)。我问Google是否有一些简单的方法可以等效于在C#中键入这两个简单的命令。我在使用TcpClient
进行一些编码方面有一点经验,所以我知道如何将字符串作为字节数据发送。
telnet smtp.gmail.com 465
helo localhost
但是.... NET的
SmtpClient
类似乎没有Stream
成员!在这种情况下,如何发送命令? 最佳答案
使用TcpClient
连接到远程端口,然后将helo localhost
命令作为ASCII字符字符串发送。
TcpClient client = new TcpClient("smtp.gmail.com", 465);
var stream = client.GetStream();
var bytes = Encoding.ASCII.GetBytes("localhost helo");
stream.Write(bytes, 0, bytes.Length);
但是,我相信端口465用于安全通信,因此您需要使用SSL或端口25。