基本信息
源码名称:C#139邮箱发手机短信源码
源码大小:0.21M
文件格式:.rar
开发语言:C#
更新时间:2024-11-14
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 1 元 
   源码介绍

C#139邮箱发手机短信源码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Timers;
using mshtml;
using System.Net;
using System.IO;
using System.Runtime.InteropServices;
using System.Threading;//

namespace WindowsApplication42
{
    public partial class Form2 : Form
    {   HtmlDocument hdoc;
        System.Timers.Timer _timer = new System.Timers.Timer();
        public Form2()
        {
            InitializeComponent();
            int _Interval = 100;
            _timer.Enabled = true;
            _timer.Interval = _Interval;
            _timer.Elapsed = new ElapsedEventHandler(Timer_Elapsed);
        }
         private void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            string CurrTime = System.DateTime.Now.ToLongTimeString();
            string s = "20:01:00";
            if (CurrTime == s)
            {
                this.Invoke(new MethodInvoker(delegate
                //this.Invoke(new MethodInvoker(() =>
                {
                    string aaa = "123456";
                    string bbb = "123456";
                    IHTMLDocument3 aa = CorssDomainHelper.GetDocumentFromWindow(this.webBrowser1.Document.Window.Frames["miniLoginFrame"].DomWindow as IHTMLWindow2);
                    aa.getElementById("miniLogin_username").setAttribute("value", aaa, 0);
                    aa.getElementById("miniLogin_pwd").setAttribute("value", bbb, 0);
                    IHTMLElementCollection input = (IHTMLElementCollection)aa.getElementsByTagName("input");
                    foreach (IHTMLElement ht in input)
                    {
                        if (ht.getAttribute("type", 0).Equals("submit") != null)
                        {
                            ht.click();
                        }
                   } 
                }
                )
                );
            }
        }
        private void Form2_Load(object sender, EventArgs e)
       {
            comboBox1.Text = "http://mail.10086.cn/";
            comboBox1.Items.Add("http://p.www.xiaomi.com/zt/xm_account/loginfacade.html?third=http%253A%252F%252Forder.xiaomi.com%252Flogin%252Fcallback%253Ffollowup%253Dhttp%25253A%25252F%25252Fwww.xiaomi.com%2526sign%253DMWM0ZDg1YWE3ZDc4NGJjNzU0MDM4MmRiNzY0ZWY0MDJlYTVkODBlZA%252C%252C%26sid%3Deshop&sid=eshop&callback=http%253A%252F%252Forder.xiaomi.com%252Flogin%252Fcallback%253Ffollowup%253Dhttp%25253A%25252F%25252Fwww.xiaomi.com%2526sign%253DMWM0ZDg1YWE3ZDc4NGJjNzU0MDM4MmRiNzY0ZWY0MDJlYTVkODBlZA%252C%252C&sign=3C15pt35v9KK5SR8saFsKQ89uRo%253D&1382244002316");
            comboBox1.Items.Add( "http://mail.10086.cn/");
        }
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            //定义html元素 通过Name获取控件值  
            // HtmlElement tbUserid = webBrowser1.Document.All["UserName"];  
            // HtmlElement tbPasswd = webBrowser1.Document.All["Password"];
            //定义html元素 通过ID获取控件值 (用户名 密码 登录按钮)  sendSmsBtn
            HtmlElement tbUserid = webBrowser1.Document.GetElementById("txtUser");//通行证/手机号/别名
            HtmlElement tbPasswd = webBrowser1.Document.GetElementById("txtPass");//密码
            HtmlElement btnSubmit = webBrowser1.Document.GetElementById("loginBtn");//登 录
            //三个元素其一为空返回 加载后才执行赋值 否则会出现为null值的崩溃错误  
            if (tbUserid == null || tbPasswd == null || btnSubmit == null)
            {
                return;
            }
            // MessageBox.Show("7");
            //设置元素value属性值 (用户名 密码值)  
            tbUserid.SetAttribute("value", "1366498XXX2@139.com");//改成自己的邮箱
            tbPasswd.SetAttribute("value", "12345678");//改成自己的密码
            //执行元素的方法:如click submit  
            // MessageBox.Show("8");
            //btnSubmit.InvokeMember("click");
            hdoc = webBrowser1.Document;
   
        }
        class CorssDomainHelper
        {

            private static Guid IID_IWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");

            private static Guid IID_IWebBrowser2 = new Guid("D30C1661-CDAF-11D0-8A3E-00C04FC9E26E");

            // Utility for IE cross domain access 

            // Returns null in case of failure. 

            public static IHTMLDocument3 GetDocumentFromWindow(IHTMLWindow2 htmlWindow)
            {

                if (htmlWindow == null)
                {

                    return null;

                }

                // First try the usual way to get the document. 

                try
                {

                    IHTMLDocument2 doc = htmlWindow.document;

                    return (IHTMLDocument3)doc;

                }

                catch (System.Runtime.InteropServices.COMException comEx)
                {

                    // I think COMException won't be ever fired but just to be sure ... 

                }

                catch (UnauthorizedAccessException)
                {

                }

                catch (Exception ex)
                {

                    return null;

                }

                // At this point the error was E_ACCESSDENIED because the frame contains a document from another domain. 

                // IE tries to prevent a cross frame scripting security issue. 

                try
                {

                    // Convert IHTMLWindow2 to IWebBrowser2 using IServiceProvider. 

                    IServiceProvider sp = (IServiceProvider)htmlWindow;

                    //Use IServiceProvider.QueryService to get IWebBrowser2 object. 

                    Object brws = null;

                    //sp.QueryService(ref IID_IWebBrowserApp, ref IID_IWebBrowser2, out brws);

                    //// Get the document from IWebBrowser2. 

                    //IWebBrowser2 browser = (IWebBrowser2)(brws);

                    //return (IHTMLDocument3)browser.Document;

                }

                catch (Exception ex)
                {

                    Console.WriteLine(ex);

                }

                return null;

            }

        }
        //鼠标事件  因为我用的不多,所以其他参数没有写
        private readonly int MOUSEEVENTF_LEFTDOWN = 0x0002;//模拟鼠标左键按下
        private readonly int MOUSEEVENTF_MOVE = 0x0001;//模拟鼠标移动
        private readonly int MOUSEEVENTF_LEFTUP = 0x0004;//模拟鼠标左键抬起
        private readonly int MOUSEEVENTF_ABSOLUTE = 0x8000;//鼠标绝对位置
        private readonly int MOUSEEVENTF_RIGHTDOWN = 0x0008; //模拟鼠标右键按下 
        private readonly int MOUSEEVENTF_RIGHTUP = 0x0010; //模拟鼠标右键抬起 
        private readonly int MOUSEEVENTF_MIDDLEDOWN = 0x0020; //模拟鼠标中键按下 
        private readonly int MOUSEEVENTF_MIDDLEUP = 0x0040;// 模拟鼠标中键抬起 
        [DllImport("user32")]
        public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
        private void button1_Click(object sender, System.EventArgs e)
        {
              HTMLDocument doc = (HTMLDocument)webBrowser1.Document.DomDocument;
                for (int i = 0; i < webBrowser1.Document.Window.Frames.Count; i )
                {             
                        IHTMLDocument3 baiduDoc = CorssDomainHelper.GetDocumentFromWindow(webBrowser1.Document.Window.Frames[i].DomWindow as IHTMLWindow2);
                        if (baiduDoc != null && baiduDoc.documentElement != null && baiduDoc.documentElement.document != null)
                        {
                            IHTMLElementCollection linkss = ((HTMLDocument)(baiduDoc.documentElement.document)).links;
                            foreach (mshtml.IHTMLElement element in linkss)
                            {
                                //网址
                            }
                            IHTMLElementCollection el = ((HTMLDocument)(baiduDoc.documentElement.document)).getElementsByTagName("input");//
                            foreach (mshtml.IHTMLElement em in el)
                            {
                                //输入值
                            }
                            IHTMLElementCollection eel = ((HTMLDocument)(baiduDoc.documentElement.document)).getElementsByTagName("span");//
                             //遍历所有元素
                            foreach (mshtml.IHTMLElement eem in eel)
                            {
                                if (eem.innerText == "发送")//.InnerText == "发送"
                                {
                                    MessageBox.Show(" 发送按钮:" eem.getAttribute("id"));
                                    eem.click();//执行按钮
                                }
                            }
                            
                        }

                }
        }

        //public Point GetOffset(HtmlElement el)
        //{
        //    //get element pos
        //    Point pos = new Point(el.OffsetRectangle.Left, el.OffsetRectangle.Top);

        //    //get the parents pos
        //    HtmlElement tempEl = el.OffsetParent;
        //    while (tempEl != null)
        //    {
        //        pos.X = tempEl.OffsetRectangle.Left;
        //        pos.Y = tempEl.OffsetRectangle.Top;
        //        tempEl = tempEl.OffsetParent;
        //    }

        //    return pos;
        //}
        private void button2_Click(object sender, System.EventArgs e)
        {
            ////获取输入的URL
            //string url = "http://p.www.xiaomi.com/zt/xm_account/loginfacade.html?third=http%253A%252F%252Forder.xiaomi.com%252Flogin%252Fcallback%253Ffollowup%253Dhttp%25253A%25252F%25252Fwww.xiaomi.com%2526sign%253DMWM0ZDg1YWE3ZDc4NGJjNzU0MDM4MmRiNzY0ZWY0MDJlYTVkODBlZA%252C%252C%26sid%3Deshop&sid=eshop&callback=http%253A%252F%252Forder.xiaomi.com%252Flogin%252Fcallback%253Ffollowup%253Dhttp%25253A%25252F%25252Fwww.xiaomi.com%2526sign%253DMWM0ZDg1YWE3ZDc4NGJjNzU0MDM4MmRiNzY0ZWY0MDJlYTVkODBlZA%252C%252C&sign=3C15pt35v9KK5SR8saFsKQ89uRo%253D&1382244002316";
            //string url = "http://mail.10086.cn/";
            ////string url = "http://mail.163.com/";  
            string url = comboBox1.Text;
            //创建http链接  
            //HttpWebRequest对象实例:该类用于获取和操作HTTP请求 var可改成HttpWebRequest  
            var request = (HttpWebRequest)WebRequest.Create(url);   //创建WebRequest对象  
            // MessageBox.Show("1");
            //HttpWebResponse对象实例:该类用于获取和操作HTTP应答 var可改成HttpWebResponse  
            var response = (HttpWebResponse)request.GetResponse();  //GetResponse:获取答复  
            // MessageBox.Show("2");
            //构造数据流对象实例  
            Stream stream = response.GetResponseStream();  //GetResponseStream:获取应答流 
            // MessageBox.Show("3");
            StreamReader sr = new StreamReader(stream);    //从字节流中读取字符  
            // MessageBox.Show("4");
            //从流当前位置读取到末尾并显示在WebBrower控件中  
            string content = sr.ReadToEnd();
            // MessageBox.Show("5");
            webBrowser1.ScriptErrorsSuppressed = true; //屏蔽错误信息 C# 系统组件
            webBrowser1.DocumentText = content;
            //webBrowser1.Navigate("http://p.www.xiaomi.com/zt/xm_account/loginfacade.html?third=http%253A%252F%252Forder.xiaomi.com%252Flogin%252Fcallback%253Ffollowup%253Dhttp%25253A%25252F%25252Fwww.xiaomi.com%2526sign%253DMWM0ZDg1YWE3ZDc4NGJjNzU0MDM4MmRiNzY0ZWY0MDJlYTVkODBlZA%252C%252C%26sid%3Deshop&sid=eshop&callback=http%253A%252F%252Forder.xiaomi.com%252Flogin%252Fcallback%253Ffollowup%253Dhttp%25253A%25252F%25252Fwww.xiaomi.com%2526sign%253DMWM0ZDg1YWE3ZDc4NGJjNzU0MDM4MmRiNzY0ZWY0MDJlYTVkODBlZA%252C%252C&sign=3C15pt35v9KK5SR8saFsKQ89uRo%253D&1382244002316");
        }

        private void button3_Click(object sender, System.EventArgs e)
        {
            HTMLDocument doc = (HTMLDocument)webBrowser1.Document.DomDocument;
            for (int i = 0; i < webBrowser1.Document.Window.Frames.Count; i )
            {
                IHTMLDocument3 baiduDoc = CorssDomainHelper.GetDocumentFromWindow(webBrowser1.Document.Window.Frames[i].DomWindow as IHTMLWindow2);
                if (baiduDoc != null && baiduDoc.documentElement != null && baiduDoc.documentElement.document != null)
                {
                    //Thread.Sleep(10000);//稍候3秒
                    IHTMLElementCollection el = ((HTMLDocument)(baiduDoc.documentElement.document)).getElementsByTagName("input");//
                    //遍历所有元素
                    // int iii = 0;
                    foreach (mshtml.IHTMLElement em in el)
                    {
                        // MessageBox.Show(iii " id:" em.getAttribute("id") " value:" em.getAttribute("value") " innerText:" em.innerText " name:" em.getAttribute("name") " type:" em.getAttribute("type") " class:" em.getAttribute("class"));//class
                        em.setAttribute("value", "1366xxxx822,");
                        // MessageBox.Show("X:" em.offsetWidth " Y:" em.offsetHeight);//
                        var
                        xx = em.offsetLeft this.Left 350 webBrowser1.Left;// 
                        var
                        yy = em.offsetTop this.Top 200 webBrowser1.Top;//
                        int x = int.Parse("" xx);//在()输入要点击的x位置
                        int y = int.Parse("" yy);//在()中输入要点击的y位置
                        //绝对位置
                        Rectangle rect = System.Windows.Forms.SystemInformation.VirtualScreen;
                        int width = rect.Width;//获取屏幕X大小
                        int height = rect.Height;//获取屏幕Y大小
                        // MessageBox.Show("X:" width " Y:" height);
                        mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, x * 65535 / width, y * 65535 / height, 0, 0);//移动到需要点击的位置
                        mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE , x * 65535 / width, y * 65535 / height, 0, 0);//点击
                        mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE , x * 65535 / width, y * 65535 / height, 0, 0);//抬起
                        //相对位置  指的是相对于当前鼠标的相对位置
                        //mouse_event(MOUSEEVENTF_MOVE, x, y, 0, 0);//移动
                        mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);//点击
                        mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);//抬起
                    }
                }
            }
            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
            {
                string bbb = "1234";
                IHTMLDocument3 aa = CorssDomainHelper.GetDocumentFromWindow(this.webBrowser1.Document.Window.Frames[2].DomWindow as IHTMLWindow2);
                aa.getElementById("txtContent").setAttribute("value", bbb, 0);
            }
        }

        private void button4_Click(object sender, System.EventArgs e)
        {
            HTMLDocument doc = (HTMLDocument)webBrowser1.Document.DomDocument;
            for (int i = 0; i < webBrowser1.Document.Window.Frames.Count; i )
            {
                IHTMLDocument3 baiduDoc = CorssDomainHelper.GetDocumentFromWindow(webBrowser1.Document.Window.Frames[i].DomWindow  as IHTMLWindow2);
                if (baiduDoc != null && baiduDoc.documentElement != null && baiduDoc.documentElement.document != null)
                {
                    IHTMLElementCollection linkss = ((HTMLDocument)(baiduDoc.documentElement.document)).links;
                    foreach (mshtml.IHTMLElement element in linkss)
                    {  // MessageBox.Show(ii " " element.getAttribute("id") " " element.getAttribute("type") " " element.getAttribute("href"));
                        //加入你的代码就可以了。
                        if (element.getAttribute("id") == "smsSend")
                        {
                            //MessageBox.Show(" 发信息:" element.getAttribute("id"));
                            element.click();//执行按钮
                        }
                    }
                }
            }
        }

        private void button5_Click(object sender, System.EventArgs e)
        {
            webBrowser1.Document.GetElementById("loginBtn").InvokeMember("Click");//按登录
        }

        private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
        {

        } 
    }
 }