额:被移除首页了,好吧 我在写详细点吧
我本来是想做一个自己的邮箱服务器的,看看协议后些了个接收的,但感觉实在太不安全了,于是就去测速了下别的大公司的邮箱系统,看看是否安全点,测试发现貌似网易163的邮箱服务器貌似是别人的,不是网易自己开发的。。。 开始测试发现一般都能接收成功。。。 但网易的好像有时候要排队,qq的好点,但一般发送到最后一步丫的给我来了个550 ,而且经常是 但有的邮箱发就没事,很是郁闷,弄了好久还是没弄出来,所以发上来求大哥大姐帮帮忙来看看
class Program { static void Main(string[] args) { //113.108.77.23 //qq邮箱 更多服务器nslookup -qt=mx qq.com //163mx02.mxmail.netease.com// 163邮箱 更多服务器nslookup -qt=mx 163.com System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient("163mx03.mxmail.netease.com", 25);//连接接收此邮件的服务器 byte[] bytes = new byte[80]; var count = client.Client.Receive(bytes);//接收服务器返回的状态信息 var sendServer = System.Text.Encoding.ASCII.GetString(bytes);//应该返回220 Console.WriteLine(sendServer); client.Client.Send(System.Text.Encoding.ASCII.GetBytes("HELO m1.163.com\r\n"));//发送HELO信息 bytes = new byte[80]; count = client.Client.Receive(bytes);//接收服务器返回的状态信息 sendServer = System.Text.Encoding.ASCII.GetString(bytes);//应该返回250 Console.WriteLine(sendServer); client.Client.Send(System.Text.Encoding.ASCII.GetBytes("MAIL FROM:\r\n"));//通知服务器邮件的发送者 bytes = new byte[80]; count = client.Client.Receive(bytes);//接收服务器返回的状态信息 sendServer = System.Text.Encoding.ASCII.GetString(bytes);//返回250 则可以继续,否则不能继续了 Console.WriteLine(sendServer); client.Client.Send(System.Text.Encoding.ASCII.GetBytes("RCPT TO:<136420351@163.com>\r\n"));//通知服务器接收邮件的邮箱地址 多个可循环此步骤,但要接收了返回信息在发 bytes = new byte[80]; count = client.Client.Receive(bytes);//接收服务器返回的状态信息 sendServer = System.Text.Encoding.ASCII.GetString(bytes);//返回250 则可以继续,否则不能继续了 Console.WriteLine(sendServer); client.Client.Send(System.Text.Encoding.ASCII.GetBytes("DATA\r\n"));//通知服务器要发生邮件内容了 bytes = new byte[80]; count = client.Client.Receive(bytes);//接收服务器返回的状态信息 sendServer = System.Text.Encoding.ASCII.GetString(bytes);//返回354 则可以继续,否则不能继续了 Console.WriteLine(sendServer); string data = @"From:1049099499 To: 1049099499<136420351@163.com>Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: Base645LiN5aW95oSP5oCd77yM5ou/5L2g6YKu566x5Y+R5LqG5Liq6YKu5Lu2LeOAgi3vvIE=------=_Part_161944_1210153027.551452414."; client.Client.Send(System.Text.Encoding.ASCII.GetBytes(data));//邮件内容,内容是Base64编码的 “不好意思,拿你邮箱发了个邮件-。-!” Console.WriteLine("数据发送完成"); bytes = new byte[80]; count = client.Client.Receive(bytes);//接收服务器返回的状态信息 sendServer = System.Text.Encoding.ASCII.GetString(bytes); Console.WriteLine(sendServer);//返回250 则成功了 550则失败,发送给qq的邮箱失败率很高,不知道为什么,451也是失败,但不知道什么东西 Console.Read(); } }
注意几点:1、发送者和接收着不能是同一个服务器,如:qq的邮箱不能发给qq邮箱,服务器会拒绝
2、发送失败率很高,原因不知道,我测试把邮件的内容精简了,补齐了一样,求高手解决 3、我没要推出和清理资源了,反正失败率蛮高 4、我使用同样的内容,用163的邮件发给我的一个qq成功率100% 但换另外一个qq接收就失败,不知道什么原因希望大哥大姐们把这个发送失败的原因找出来或让其成功率高点,如果能让成功率高些了的大哥大姐跟我说下,小弟感激不敬-。-!
转载请注明出处:快乐你我-快乐编程