探索怎样运用C#登录QQ邮箱举办群邮件的殡葬

互联网步入了经营销售的时日,营销则进入精准、细化的操作阶段,QQ用户群的归类则是累累拓展精准营销的商店和私家紧看着的一块肥肉。与普通举行科普邮件发送经营销售的两样,QQ群邮件的出殡和埋葬费用十分的低,三回发送,就能够使得群里面成千上百的人都吸收邮件,比日常邮件发送的形式和准确率都好广大。用手工业登录QQ邮箱发送邮件是一种无奈的选拔,效用并不高,借使利用软件自动识别发送群,并能批量出殡和埋葬群邮件,那么作用将会抓实广大,可是使用QQ进行群邮件的发送,也决不一件不难的事务,本文就是探索那块的落实,引玉之砖,希望大家一齐开始展览学习钻探。

回想以前看过《蜗居》的书和电视机剧,当中海萍教马克汉字的一部分触动了自家。瞅着电视机中马克睁大眼睛,牙牙学语般读“木、林、森”时的景色,小编想起了温馨小学时的部分事情。

是因为邮箱是亟需报到的,我们首先供给效法邮箱的报到,如下图所示

 (一)识字

图片 1 

未读书以前,笔者曾经接受了某些“学前培训”。

QQ的群,不是您创制的群,就能发送,类似爱情购销那首歌:“爱情不是您想卖
想买就能卖“,腾讯做法是,”群邮不是你想发,想发就能发的“,呵呵。

当初作者四5周岁,阿娘常常教笔者写一些最简单易行的方块字,翻开薄薄的演练本,阿妈将曾经削尖的铅笔塞到了自己的手中,然后,她的大手裹着小编的小手,温暖传递,流水般,几个个并不尊重的字落在了纸上。

呵呵,言归正传,大家登录邮箱,发送群邮件的时候,就明白那样的情状了,群唯有对方运维发送,并且你投入到对方的群,那样才足以发送邮件的,我们看看网页界面:

三7回后,老母便松了手,作者虽“孤军作战”,但平日惊惶失措,以致之后所写,往往如佛头着粪,似蚂蚁,也像蛤蟆。

图片 2 

(二)规矩

开辟QQ群列表,大家见到她会列出某些得以发送邮件的群列表,如下所示:

俗话说,没有规矩不成方圆。虽未读书,高校的规矩笔者已知晓。

图片 3 

对此四虚岁左右只知玩耍的笔者,想象中,学校是纯属去不得的。

那样,大家模拟这几个操作,先把账号能够发送的群列表及有关音信获取出来,如下图所示:

假如有老人家站在自身身边,双手叉腰,俯下身子跟笔者讲:“前几年便送你去高校。”眼泪就会在自笔者的眼眶中打转,因为在自小编听来,那是一件天津大学的恐怖事件。

图片 4 

家长们告诉本身先生有教鞭,什么人若不听话就打哪个人;老师会扣人,专扣那么些完不成作业的学生。

取得这一个音讯,我们就成功了三个较为首要的步骤,剩下的正是出殡和埋葬群邮件的操作了。 

单凭这两点,老师在笔者心中的形象已如社鼠城狐般残忍,妖魔鬼怪般险恶,一想到一年过后要去见那样的“妖物”,笔者每一日战战兢兢,夜不可能寐。

看了上边的剖析,大家来具体研商下C#源码的兑现,首先须要取获得能发送群邮件的群相关消息,具体的操作如下函数所示:

 

        string id32 = “”;
        string id32Value = “”;
        private void GetCanSendMailQun()
        {
            //引用地址
            string refUrl = string.Format(“http://m411.mail.qq.com/cgi-bin/frame\_html?sid={0}&r={1}“, Portal.gc.LoginInfo.SID, Portal.gc.LoginInfo.R);
            //可发送邮件的群列表音讯
            string url = string.Format(“http://m411.mail.qq.com/cgi-bin/grouplist?sid={0}&t=compose\_group&gid=&s=from\_mail\_list“, Portal.gc.LoginInfo.SID);

 (三)上学无兴趣

            httpHelper.Encoding = Encoding.GetEncoding(“gb18030”);
            string content = httpHelper.GetHtml(url, Portal.gc.EmailCookie, refUrl);
            //获取群列表并分析
            string itemRegex = “<option\\s*id=\”(?<gname>.*?)\”\\s*value=\”(?<gid>.*?)\”\\s*>\\s*(?<name>.*?)\\s*</option>”;
            Regex re = new Regex(itemRegex, RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace);
            Match mc = re.Match(content);
            if (mc.Success)
            {
                MatchCollection mcs = re.Matches(content);
                this.txtQunList.Items.Clear();
                foreach (Match me in mcs)
                {
                    string strName = me.Groups[“name”].Value;
                    string strEmail = me.Groups[“gid”].Value;
                    CListItem item = new CListItem(strName, strEmail);
                    this.txtQunList.Items.Add(item);
                }
            }

要说有子女对小学的某门课极其感兴趣,那本人平昔是不相信的。假使非要扯上兴趣的话,那自身深信不疑也是因为成绩特出而名声鹊起或是某门课程的教授厚爱所致。

            //取得叁个动态构造的Hidden参数的名号和值,该参数名和值都是运用3三个人MD5编码,所以相比较不难得到
            itemRegex =”<input\\s*id=\”(?<id>.{32})\”\\stype=\”hidden\”\\s*name=\”(?<name>.{32})\”\\s*value=\”(?<value>.{32})\”/>”;
            re = new Regex(itemRegex, RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace);
            mc = re.Match(content);
            if (mc.Success)
            {
                id32 = mc.Groups[“id”].Value;
                id32Value = mc.Groups[“value”].Value;
            }
        }

设若战表一向走下坡路或然日常受老师的责骂,何地还有趣味可言?

 

甭管你们信不信,小编上小学时反正是没有一点感兴趣。那时何地相信为贯彻价值而奋斗之类的事物,之所以上学,完全是老人安顿的。要说对哪些感兴趣,二个字——玩。

以上操作就是获取群列表的效益代码,剩下的大家一而再跟踪怎样发送群邮箱的,发送群邮件的操作和一般的POST方式不相同,他是运用了一种专门的措施开始展览处理,也正是出殡和埋葬MultiPart内容措施。上边作者发送了一份宣传的邮件,监测到提交的字符列表如下所示:

高校里,小编最讨厌的是解说比赛,望着比本人还小的小屁孩儿,脸不红气不喘地吐露“响应4月革命的唤起”等说话,小编真想跑过去给他们每人一个大嘴巴子——那不是彻头彻尾睁眼说胡话吗?你了然一月革命是什么吗?

图片 5图片 6代码

本身每一天上学时想着放假,放假后没有想开学。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”sid”

大家学校上午布署了四节课,笔者先是节课低头彷徨;首节课内心呼喊;首节课朝花夕拾,回顾早晨美味的荷包蛋;第一节课上课铃一响,笔者的思量便如脱缰的野马,渴望新天地,企盼着人生故事的新编。

ZwcM6rV_qNv5eiRp
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”actiontype”

(四)傻子不傻

send
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”bigattachcnt”

班里有二个白痴,叫“喜华”。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”priority”

因为她是白痴,毫无疑问地,他成了我们课上课下的玩伴。当时的景况,能够套用今日的两句流行语来叙述——“有了喜华,母亲再也不用担心本人的娱乐”、“每日的生存是进食、睡觉、逗喜华。”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”contenttype”

大家喜爱干涉喜华的活着,诸如骗他上女孩子厕所,或许偶尔群殴他,而她也逐年习惯了被大家干涉:头也不回地冲进女厕,被群殴时不曾还手……后来,无论是被逗、被骂、依然被打,他都默默接受着,有时甚至还会唱几支小曲逗大家满面春风。

html
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”savesendbox”

本来她也有我们羡慕的优势,那正是他得以迟到早退,而大家只可以早到迟退。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”sendname”

有点年过去了,某次回家,路上蒙受了喜华,他热情地向自家打招呼:“你还在求学啊,作者都从头赚钱。”一句话让自身内心五味陈杂,笔者不禁问自身:那或许当下的傻喜华吗?

alias
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”qqshow”

有时候笔者会想起姜文编剧《阳光灿烂的光景》中的傻子。他是人家眼中的傻子,旁人也是她眼中的傻子。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”fmailid”

傻子也有友好的思辨格局。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”cattachelist”

 其实,傻子不傻。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”fattachlist”

 

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”rsturl”

 (五)改日再聊

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”fileidlist”

广大人说以后的自家是学霸,其实本身从小就不是多个好学生,爱玩,爱闹,爱折腾。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”verifykey”

我不是一个遵从的儿女,外人说东,笔者偏往南,父母管不了作者,从小,小编就好像脱缰的野马。所以到方今,还过得很轻易。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”verifycode”

大概自由是一种心态,恐怕是一种意况,哪个人知道吗?或然和童年关于,恐怕和成人经验有关。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”verifycode_cn”

见过太多不随意的人之后,作者也不亮堂了,一两句,确实说不完。

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”t”

那就不说了,改日再聊吧,好糟糕?

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”s”

group
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”contenttext”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”hitaddrbook”

0
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”backurl”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”newwin”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”mailtype”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”sid”

ZwcM6rV_qNv5eiRp
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”21a3f85bcf259a6e1f6f4b31e469b701″

dae08a1893ae318e4e65fb9784596ee1
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”groupname”

纽伦堡人在京都创业群
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”qqgroupid”

20328002@groupmail.qq.com
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”subject”

给我们介绍1个经营销售好帮手,QQ搜通天集团版
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”votesubject”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”option”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”option”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”option”

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”content__html”

<DIV><SPAN id=picture><A href=”http://www.iqidi.com/Download/QQEnterprise1.png"&gt;&lt;IMG height=756 alt=QQ搜通天集团版 src=”http://www.iqidi.com/Download/QQEnterprise1.png” width=925 border=0></A></SPAN><BR></DIV>
<DIV>★软件成效<B宝马X3>   <SPAN style=”MA福特ExplorerGIN-LEFT: 16px; LINE-HEIGHT: 1二分之一; MA卡宴GIN-SportageIGHT: 16px”>QQ搜通天集团版二零一零,是一款能够批量提请QQ号码、搜索采集QQ空间QQ号码新闻、按地区批量募集QQ号码、QQ群号码采集、批量添加QQ群、个人QQ群成员号码、QQ校友查询、空间日志查看发布、QQ批量留言等,以及邮件群发的软件。该软件通过选取筛选标准,能够在腾讯QQ空间查询来自何方、年龄、性别、状态、职业 等条件的QQ用户号码及连锁音讯,并协助按地区活动批量导出QQ数据;可以依据重大字及搜索类型采集查询有关QQ群音信;批量添加群;导出群成员等作用,方便寻找共同爱好的团组织和开始展览业务群锁定推广工作。</SPAN><B瑞虎><SPAN style=”MAEscortGIN-LEFT: 16px; LINE-HEIGHT: 1贰分一; MA逍客GIN-PRADOIGHT: 16px”>   该软件集成邮件群发成效,接纳不用发件人新闻可发送邮件的<SPAN class=style17><STRONG><FONT color=#aa0000>邮件直投技术</FONT></STRONG></SPAN>和<SPAN class=style17><STRONG><FONT color=#aa0000>普通发送形式结合</FONT></STRONG></SPAN>,非凡方便向QQ用户发送邮件,也可以发送别的邮件地址的邮件,软件应用四线程发送邮件,有效利用你的机器能源,发送进程不影响您的其余软件操作。</SPAN><B瑞虎><BSportage>   QQ搜通天公司版二〇一〇,支持查找QQ空间的QQ用户数据和日志空间新闻,方便你寻找某个方面包车型大巴QQ用户日志,娱乐与读书共存,休闲和交友并进。<BLAND>   QQ搜通天公司版二零零六,独有的QQ按地区自动化批量导出QQ数据,相当有利你多量取得相关标准下的QQ号码等消息,依据便利你寻找商业指标客户,火速推广您的成品。<BPAJERO>   QQ搜通天集团版2009,支持QQ群资料搜索采集、QQ群批量添加和群成员号码采集,能够火速搜索有关的QQ号码和QQ群资料,为你的政工推广提供高精度的群众体育,也为您的趣味找到适当的协会。 <B卡宴>   QQ搜通天集团版2008,能够急速公布、查看您自己及别的用户的日志,能够批量给QQ用户飞速留言,方便你通晓学习别的人的篇章并作出相应的留言回复,也得以做宣传使用。<B奥德赛>   QQ搜通天集团版二零零六,补协助调查询QQ校友录相关的用户数据,卓殊有益你寻找您黄金岁月的同班及同桌伙伴。<BPAJERO>   QQ搜通天公司版二〇〇八,接纳十六线程发送邮件,有效运用你的机器财富,发送进程不影响你的其余软件操作;发送的邮件能够保存起来,能够一本万利的时候调出来实行发送,邮件发送进程会记录发送历史,能够安装跳过重复发送的邮件,对发送未成功的邮件,能够在重复发送。软件界面美观大方,方便使用。<B奥迪Q5>
<P>1.本软件QQ数据总体来源于于“QQ空间-找朋友”、“QQ城市达人”、“QQ群”、“QQ校友录”等腾讯官方频道。<B帕杰罗>2.本软件重要作用之一是摸索QQ用户和QQ群,可是她分歧于QQ自身自带的查找效果,那款软件能够使您取得更加多音信,能够很便利的使你交到可以的心上人。<BRubicon>3.本软件此外的重点效能正是可以群发邮件,能够给寻找到的QQ用户发送邮件,也足以发送给别的Email邮箱群发邮件,极度实用方便。<BTiguan>4.本软件还适用于有个别互联网推广人群,能够直接做推广利用,通过提供采集号码服务和邮件群发成效,您能够长足方便实行网络音信的拓宽。<B猎豹CS6><BRAV4></P>
<P>★系统供给 </P>
<P>   QQ搜通天集团版二〇〇九 使用C# 2.0成本,是一款CS架构的软件, 适运营在 Microsoft WindowsNT/两千/XP/二零零一 等平台,但无法不设置有.Net 2.0平台.</P>
<P>  该软件利用了微软.NET Framework2.0卓越的框架,因而在装置软件前,您须求费用一点时日来安装上面包车型客车机件(请您根据顺序安装即可):</P>
<P>(1)MicroSoft .NET Framework 2.0 官方下载地址:<B奥德赛><A href=”http://www.microsoft.com/downloads/info.aspx?na=90&amp;p=&amp;SrcDisplayLang=zh-cn&amp;SrcCategoryId=&amp;SrcFamilyId=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;u=http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe"&gt;http://www.microsoft.com/downloads/info.aspx?na=90&amp;p=&amp;SrcDisplayLang=zh-cn&amp;SrcCategoryId=&amp;SrcFamilyId=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f7%2f567758a3-759e-473e-bf8f-52154438565a%2fdotnetfx.exe </A></P>
<P>(2)最终下载 QQ搜通天集团版二零一零,举行设置即成功整个软件的设置。安装地方为:<FONT face=小篆> <SPAN id=lblDownUrl><A href=”http://www.iqidi.com/Download/qqenterprise.rar"&gt;http://www.iqidi.com/Download/qqenterprise.rar&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&lt;/DIV&gt;
—————————–7dbda2110d091a–

 

发送邮件的代码如下所示: 

         private void btnSendQunMail_Click(object sender, EventArgs e)

        {
            CListItem item = this.txtQunList.SelectedItem as CListItem;
            if (item != null)
            {
                string refurl = string.Format(“http://m411.mail.qq.com/cgi-bin/grouplist?sid={0}&t=compose\_group&gid=&s=from\_mail\_list“, Portal.gc.LoginInfo.SID);
                string sendUrl = string.Format(“http://m411.mail.qq.com/cgi-bin/groupmail\_send?sid={0}“, Portal.gc.LoginInfo.SID);

                #region 构造邮件内容
                NameValueCollection col = new NameValueCollection(); 
                col.Add(“sid”, Portal.gc.LoginInfo.SID);
                col.Add(“actiontype”, “send”);
                col.Add(“bigattachcnt”, “”);
                col.Add(“priority”, “”);
                col.Add(“contenttype”, “html”);
                col.Add(“savesendbox”, “”);
                col.Add(“sendname”, “alias”);
                col.Add(“qqshow”, “”);
                col.Add(“fmailid”, “”);
                col.Add(“cattachelist”, “”);
                col.Add(“fattachlist”, “”);
                col.Add(“rsturl”, “”);
                col.Add(“fileidlist”, “”);
                col.Add(“verifykey”, “”);
                col.Add(“verifycode”, “”);
                col.Add(“verifycode_cn”, “”);
                col.Add(“t”, “”);
                col.Add(“s”, “group”);
                col.Add(“contenttext”, “”);
                col.Add(“hitaddrbook”, “0”);
                col.Add(“backurl”, “”);
                col.Add(“newwin”, “”);
                col.Add(“mailtype”, “”);
                //col.Add(“sid”, Portal.gc.LoginInfo.SID);
                col.Add(id32, id32Value);
                col.Add(“groupname”, item.Text);
                col.Add(“qqgroupid”, item.Value);
                col.Add(“subject”, “给我们介绍三个经营销售好助手,QQ搜通天公司版”);
                col.Add(“votesubject”, “”);
                //col.Add(“option”, “”);
                //col.Add(“option”, “”);
                col.Add(“option”, “”);
                col.Add(“content__html”, “<DIV><SPAN id=picture><A href=\”http://www.iqidi.com/Download/QQEnterprise1.png\\"&gt;&lt;IMG height=756 alt=QQ搜通天公司版 src=\”http://www.iqidi.com/Download/QQEnterprise1.png\\” width=925 border=0></A></SPAN><BR></DIV>”);
                
                #endregion
                string content = HttpPostData(sendUrl, col, refurl);
                if (content.Contains(“验证码错误”))
                {
                    MessageUtil.ShowWarning(“验证码错误”);
                }
            }
        }

 

  在那之中HttpPostData关键函数正是包裹发送MultiPart内容的代码,主要是组装各样键值的数据。

        private static string HttpPostData(string url, NameValueCollection stringDict, string referer)
        {
            string responseContent = “”;
            var memStream = new MemoryStream();
            var webRequest = (HttpWebRequest)WebRequest.Create(url);
            // 边界符
            var boundary = “—————————” + DateTime.Now.Ticks.ToString(“x”);
            // 边界符
            var beginBoundary = Encoding.ASCII.GetBytes(“–” + boundary + “\r\n”);
            // 最终的收尾符
            var endBoundary = Encoding.ASCII.GetBytes(“–” + boundary + “–\r\n”);

            // 设置属性
            webRequest.Method = “POST”;
            webRequest.Accept = “image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*”;
            webRequest.Referer = referer;
            webRequest.ContentType = “multipart/form-data; boundary=” + boundary;
            webRequest.UserAgent = “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET4.0C; .NET4.0E; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)”;
            //webRequest.Timeout = timeOut;

            // 写入字符串的Key
            var stringKeyHeader = “\r\n–” + boundary +
                                   “\r\nContent-Disposition: form-data; name=\”{0}\”” +
                                   “\r\n\r\n{1}\r\n”;

            try
            {
                foreach (string key in stringDict.Keys)
                {
                    string formitem = string.Format(stringKeyHeader, key, stringDict[key]);
                    byte[] formitembytes = Encoding.GetEncoding(“gb18030”).GetBytes(formitem);
                    memStream.Write(formitembytes, 0, formitembytes.Length);
                }

                // 写入尾声的终止边界符
                memStream.Write(endBoundary, 0, endBoundary.Length);
                webRequest.ContentLength = memStream.Length;
                webRequest.CookieContainer = Portal.gc.EmailCookie;

                var requestStream = webRequest.GetRequestStream();

                memStream.Position = 0;
                var tempBuffer = new byte[memStream.Length];
                memStream.Read(tempBuffer, 0, tempBuffer.Length);
                memStream.Close();

                requestStream.Write(tempBuffer, 0, tempBuffer.Length);
                requestStream.Close();

                var httpWebResponse = (HttpWebResponse)webRequest.GetResponse();
                using (var httpStreamReader = new StreamReader(httpWebResponse.GetResponseStream(),
                                                                Encoding.GetEncoding(“gb18030”)))
                {
                    responseContent = httpStreamReader.ReadToEnd();
                }

                //fileStream.Close();
                httpWebResponse.Close();
                webRequest.Abort();
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex);
            }

            return responseContent;
        }

 

实现地点的步子,发送邮件就大约了,检查和测试到的始末和在QQ邮件网站发送的内容大约,正是Cookie的内容有一些差别,可是不亮堂是怎样原因,平素发送不成功,重回的HTML内容提醒CGIExeption,恐怕是哪儿出了难题吗,须求继续探索。

指望各位提供思路,进一步化解那么些题材,上边是有血有肉的证实音信:

图片 7图片 8代码

<!–cgi exception–><!DOCTYPE html><html><head><meta http-equiv=”Content-Type” content=”text/html; charset=gb18030″ /><script>window.gbIsNoCheck = true;</script><script>
document.domain=”qq.com”;
function getTop()
{
var _oSelfFunc = arguments.callee;
if (!_oSelfFunc._moTop)
{try{_oSelfFunc._moTop=window!=parent?(parent.getTop?parent.getTop():parent.parent.getTop()):window;}catch(_oError){_oSelfFunc._moTop=window;}}
return _oSelfFunc._moTop;
}
try{window.top=getTop();}catch(e){eval(“var top=getTop();”);}
var gsTest = “<br/>,-1”;
var g_uin=”1584619360″;
window == getTop() && document.write(‘<script src=”http://rescdn.qqmail.com/zh\_CN/htmledition/js/all02cc76.js"&gt;&lt;/'+'script&gt;’);
(getTop().initPageEvent || function(){})(window);
</script><script src=”http://rescdn.qqmail.com/zh\_CN/htmledition/js/all02cc76.js” type=”text/javascript”></script><title>QQ邮箱</title><style></style><script>
var bIsDiskPanelFrame = “” == “pannel”;
( function() {
window.fsuccesss = “”;

if (getTop().initPageEvent)
{
getTop().initPageEvent(window);
}

window.isMainFrameError = !getTop().getMainWin || 
getTop().getMainWin() == window || ( getTop() == window && !getTop().getMainWin );

if ( !isMainFrameError )
{
return ;
}

document.write( [
‘<link rel=”stylesheet” type=”text/css” href=”http://rescdn.qqmail.com/zh\_CN/htmledition/style/comm201002c844.css” />’,
‘<link rel=”stylesheet” type=”text/css” href=”/cgi-bin/getcss?sid=QSF5AV6BdAczHkAN&ft=skin” />’
].join( “” ) );
window.onerror = function(msg, url, line) {return true;};
window.onload = function()
{
setTimeout( function() {
document.body.backgroundColor = “#fff”;
var oMsgText = getTop().S(“msg_txt”,window);
var _sMsg = getTop().trim(oMsgText.innerHTML);
var bHasHistory = history.length > 0 && getTop() != window;
var sCode = “”;
if (bIsDiskPanelFrame)//QQ diskpanel
{
sCode = [‘<center><div class=”bd” style=”text-align:left; margin:10px;”><div class=”settingtable bold bd” style=”padding:5px 10px; border-width:0 0 1px;”>出错了</div><div style=”padding:20px 10px 10px;”>系统错误,您能够<a href=”javascript:location.reload()”>刷新恢复生机服务</a></div><div style=”padding:0 10px 10px; text-align:right;”><input type=”button” onclick=”history.back()” class=”btn” style=”width:80px;” value=”再次来到上一步” /></div></div></center>’];
}
else if(_sMsg)
{
sCode = [ 
‘<center><div class=”bd” style=”text-align:left;margin-top:20px;width:70%;”><div class=”barspace1 toolbgline toolbg b_size bold” style=”padding:12px 0 12px 16px;”>邮箱提醒</div><div style=”background:#fff;padding:20px;line-height:20px;”>’,
‘<div class=”b_size”>’,
_sMsg ? _sMsg : ‘大概因网络原因促成系统繁忙,服务近来搁浅。’, ‘<br><br><div class=”b_size”>您能够品味 ‘,
‘<a href=”javascript:;” onclick=”location.replace(location.href.split(\x27#\x27)[0]);return false;” style=”font:14px;”>刷新复苏服务</a> 。</div>’,
‘</div>’,
‘<div style=”padding-top:20px;text-align:right;”>’,
bHasHistory ? ‘<input type=button class=btn value=” 再次来到上一步 ” onclick=”history.back();”></div>’ : ‘<input type=button value=”再次回到寄邮资箱首页” class=btn onclick=”getTop().goUrlTopWin(\’http://’ + location.host +  ‘/cgi-bin/frame_html?sid=QSF5AV6BdAczHkAN&from=’ + ‘\’);”>’,
‘</div>’,
‘</div>’,
‘</div></center>’
];
}
oMsgText.innerHTML = sCode.join(“”);
oMsgText.style.display = “block”;

}, 20);
};
} )();
function SafeModeSwitchConfirm()
{
if(getTop().S(“divSafeModeOn”))
{
return;
}
if(confirm(“QQ邮箱正在拓展系统珍贵,您必须进入只读形式才能继续选用邮箱。\n请注意:要是您最近正值写邮件或写记事,直接进入只读情势将只怕造成数据丢失,请[取消]并手工业保存您的多少”))
{
getTop().goUrlTopWin(getTop().location.href, true);
}
}
</script></head><body class=”tipbg” style=”text-align:center;background:white;”><div id=”msg_txt” style=”display:none;” code=”-141″> 验证码错误<script>var bVerifycode=true;getTop().verifyCode(“cncodewrong”);</script></div></body><script language=”Javascript”>
( function() {
var _oMainWin = getTop().getMainWin(),
_sMainWinLoc = _oMainWin.location.href,
_sActionWinLoc = getTop().getActionWin().location.href,
_msgTxtObj = getTop().S(“msg_txt”, window),
_bIsShowVerifyFrame = getTop().QMDialog(“QMVerify”)|| typeof(bVerifycode)!=”undefined”;

if(!_msgTxtObj || getTop().trim && getTop().trim(_msgTxtObj.innerText || _msgTxtObj.textContent) == “[出殡错误报告]”)
{
return;
}
_msgTxtObj.innerHTML = getTop().filteScript( _msgTxtObj.innerHTML );

if (window[“misslist”])
{
var infos = _oMainWin.QMAttach.getInfoUid(misslist);
getTop().confirmBox( {
msg : getTop().TE([‘以下%len%个附属类小部件绑定战败,请重试:<br/>’,
‘%@%for(%list%)%@%’,
‘<span style=”color:red;” title=”%name%”>’,
‘%@%eval subAsiiStr(%name%,%_root_.width%,”…”,1)%@%’,
‘</span>; ‘,
‘%@%if(%_root_.len%<5)%@%<br/>%@%endif%@%’,
‘%@%endfor%@%’], ‘%’).replace( {
len : infos.length,
width : infos.length < 5 ? 40 : 15,
list : infos
} ),
title : “失利新闻”,
confirmBtnTxt : “重试”,
cancelBtnTxt : “取消”,
onreturn : function(_abIsOk) {
if (_abIsOk)
{
_oMainWin.fireMouseEvent(_oMainWin.SN(“sendbtn”)[0], “click”);
}
else
{
E(infos, function(_aoInfo) {
_oMainWin.delAttach(_aoInfo.id);
});
}
}
} );
}
else if (!_bIsShowVerifyFrame
&& !isMainFrameError
&& (_sMainWinLoc.indexOf(“t=compose”) != -1 )//|| _sMainWinLoc.indexOf(“t=mail_list_groupsms”)>-1)
&& _sActionWinLoc.indexOf(“customstationery”) == -1 
&& “<br/>” != “autosave” && “<br/>” != “sms_notify”)
{
getTop().msgBox((_msgTxtObj && _msgTxtObj.innerHTML) || “系统错误”, “dialog”, true, 0, “退步信息”, window );
}
else if( !isMainFrameError ) {
if (!bIsDiskPanelFrame || window.name != “keepSession”)
{
getTop().msgBox(null, fsuccesss, true, 5000, null, window);
}
}

try {
getTop().errorProcess();
}
catch( e ){}
} )();
</script></html>