C# 邮件发送服务器(伪别人的邮箱地址发送)

额:被移除首页了,好吧 我在写详细点吧

我本来是想做一个自己的邮箱服务器的,看看协议后些了个接收的,但感觉实在太不安全了,于是就去测速了下别的大公司的邮箱系统,看看是否安全点,测试发现貌似网易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:<system@net.cn>\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<system@net.cn>
To: 1049099499<136420351@163.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Base64

5LiN5aW95oSP5oCd77yM5ou/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接收就失败,不知道什么原因

希望大哥大姐们把这个发送失败的原因找出来或让其成功率高点,如果能让成功率高些了的大哥大姐跟我说下,小弟感激不敬-。-!

转载请注明出处:快乐你我-快乐编程 http://www.happyyouandme.com

 

posted @ 2013-05-26 19:51  Happy you and me  阅读(1465)  评论(0编辑  收藏  举报