TechED2010跟自己(二)—— Windows Phone 7 Develop

 

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

 

  其中HttpPostData关键函数就是包发送MultiPart内容之代码,主要是组装各种键值的数额。

这次TechED中本身选听了一些WP7相关课程,总体抓住其中的几乎个重大字:统一、Metro、Live
Tiles、Panorama、Pivot,其实还有一个,没有于Session中公然标识,但是表现在有着WP7
Session的始终的经过里——它就是开发好容易,记忆深刻的是张欣在“使用Silverlight开发Windows
Phone
7应用程序”中都涉嫌:他的同等员朋友做Iphone应用,花了6单月,转至WP7上便如6周到了。

赢得这些消息,我们即便水到渠成了一个较为主要之步调,剩下的便是殡葬群邮件的操作了。 

此地自己以为大家享用我于TechED中对WP7开发的有的见闻和思想。

            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);
                }

 

图片 1 

“Panorama”、“Pivot”这半只都是可出关系密切的UI,“Panorama”为用户提供流畅的心得,而“Pivot”则是供大量音。

被大家介绍一个营销好下手,QQ搜通天公司版
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”votesubject”

“统一”包含三单方面:硬件,指有出于微软集合定义的硬件;质量,所有软件之揭晓通过AppHub,微软会面对质量统一支配;平台,统一之支出平台,通常开发人员最关切的就是是出平台了,这里我大多唠叨几句。下面就张图于不同的session中数提到,他表征着微软本着合WP7开发平台的设计和远景。
图片 2 
老三局部是Screen(本地开发)使用的运行条件以及工具,这里发生Silverlight和XNA两种选择,而工具则统一为VS2010及Expression组合和另外援助开发工具包;下一半有的则是强调WP7对“云”的支撑,这个也刚刚符合了Keynote中的“云+端”的战略。

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

“Metro”指的凡微软在WP7上运用简明的绘画表示动作要标识,通过这些标识使用者很快即会找到需要之物,这个貌似就是是单概念。

                var requestStream = webRequest.GetRequestStream();

以上个人看法,欢迎拍砖~

<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>★软件功能<BR>   <SPAN style=”MARGIN-LEFT: 16px; LINE-HEIGHT: 150%; MARGIN-RIGHT: 16px”>QQ搜通天公司版2010,是如出一辙暂缓可以批量申请QQ号码、搜索采集QQ空间QQ号码信息、按地区批量采集QQ号码、QQ群号码采集、批量补给加QQ群、个人QQ群成员号码、QQ校友查询、空间日志查看发表、QQ批量留言等,以及邮件群发的软件。该软件通过增选筛选标准,可以在腾讯QQ空间查询来自何处、年龄、性别、状态、职业 等原则的QQ用户号码以及连锁信息,并支持按地区活动批量导出QQ数据;可以依据重大字及搜索类型采集查询相关QQ群信息;批量添加群;导出群成员等效果,方便找共同爱好的团伙和进行业务群锁定推广工作。</SPAN><BR><SPAN style=”MARGIN-LEFT: 16px; LINE-HEIGHT: 150%; MARGIN-RIGHT: 16px”>   该软件集成邮件群发功能,采用不用发件人信但发送邮件的<SPAN class=style17><STRONG><FONT color=#aa0000>邮件直投技术</FONT></STRONG></SPAN>和<SPAN class=style17><STRONG><FONT color=#aa0000>普通发送方组成</FONT></STRONG></SPAN>,非常有益于QQ用户发送邮件,也堪发送其他邮件地址的邮件,软件以多线程发送邮件,有效使用你的机器资源,发送过程未影响您的其他软件操作。</SPAN><BR><BR>   QQ搜通天公司版2010,支持查找QQ空间的QQ用户数据与日志空间信息,方便而寻找某些方面的QQ用户日志,娱乐与读书共存,休闲和交友并进。<BR>   QQ搜通天公司版2010,独有的QQ按地区自动化批量导出QQ数据,非常有利于而大量取有关标准下的QQ号码当信息,根据便利而寻找商业目标客户,迅速推广您的成品。<BR>   QQ搜通天公司版2010,支持QQ群资料搜索采集、QQ群批量添加和众多成员号码采集,能够快搜索有关的QQ号码与QQ群资料,为而的事务推广提供标准之群落,也也汝的兴找到合适的集团。 <BR>   QQ搜通天公司版2010,可以便捷发表、查看您自己与其他用户的日记,可以批量让QQ用户快速留言,方便而了解上其他人的稿子并作出相应的留言回复,也可做宣传下。<BR>   QQ搜通天公司版2010,支持查询QQ校友录相关的用户数量,非常便宜你寻找您黄金岁月的同班和同桌伙伴。<BR>   QQ搜通天公司版2010,采用多线程发送邮件,有效使用你的机器资源,发送过程未影响您的其他软件操作;发送的邮件可以保存起来,可以一本万利之时节调出来进行发送,邮件发送过程会记录发送历史,可以装过了重复发送的邮件,对发送未中标之邮件,可以在又发送。软件界面美观大方,方便使用。<BR>
<P>1.如约软件QQ数据全自于“QQ空间-找朋友”、“QQ城市达人”、“QQ群”、“QQ校友录”等腾讯官方频道。<BR>2.遵照软件主要力量之一是摸索QQ用户与QQ群,不过他不等于QQ本身由带的查找功能,这款软件可要您得到更多信息,可以充分便利之要您到至精粹的意中人。<BR>3.按软件另外的主要意义就是好群发邮件,可以被寻找到之QQ用户发送邮件,也足以发送给其他Email邮箱群发邮件,非常实用方便。<BR>4.本软件还适用于有大网拓宽人群,可以一直开扩采取,通过提供采集号码服务和邮件群发功能,您可很快方便进行网络消息之放开。<BR><BR></P>
<P>★系统要求 </P>
<P>   QQ搜通天公司版2010 使用C# 2.0开发,是同样款CS架构的软件, 适运行于 Microsoft WindowsNT/2000/XP/2003 等平台,但必须安装有.Net 2.0等同台.</P>
<P>  该软件使用了微软.NET Framework2.0佳之框架,因此当设置软件前,您要花费一点年华来装下面的机件(请而照顺序安装即可):</P>
<P>(1)MicroSoft .NET Framework 2.0 官方下载地址:<BR><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搜通天公司版2010,进行安装即好总体软件之安。安装地点为:<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–

另外是关于WP7在“云”端的采取,我没去听,但是对于眼前之网络环境与商海环境,我眷恋短期内未会见生出重型应用,而小型应用估计再也非见面选“云”端,因为那样的老本不见面极其没有吧。

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

 
夫图及还有一个有些细节,就是在Runtime下在来WP和XBOX、Win7老三独阳台,在WP7的大多独session也都事关,微软会受这些使得快从同栽采取场景迁移至另外场景,在demo过程被还开了切实可行的演示,快速的把一个WP7不怎么打发布暨Win7上运行。

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

 

        {
            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);

“Live
Tiles”是WP7上之UI元素,就是界面上的一个个瓷片状的格格,这是一个动态的来得单元,快速为用户提供各种信息。
图片 3

 

 

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

综述Keynote上的WP7的言传身教、WP7
Sessions以及与Charlie、张欣和王力楠等大牛的座谈,WP7强调娱乐应用,这个在Keynote和Charlie的Session非常肯定,期间演示了汪洋底Games和采用。虽然她们说明WP7在企业应用领域还是不足掉以轻心,但是大量之宣传会叫企业应用感觉到四面八方着力,因为WP7的Silverlight是以Silverlight3为底蕴,做了有些提高同属性调教而来的,对于企业应用还是远远没有Silverlight4支持的好,何况Silverlight4在企业应用依然捉襟见肘,四处受限;而任何一个runtime是XNA,想必很多人数还了解,这个吧游戏要规划之framework会有微微强力的企业应用支持啊!

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

 

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

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

 

图片 4 

                // 写副尾声之收边界符
                memStream.Write(endBoundary, 0, endBoundary.Length);
                webRequest.ContentLength = memStream.Length;
                webRequest.CookieContainer = Portal.gc.EmailCookie;

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

—————————–7dbda2110d091a
Content-Disposition: form-data; name=”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(“验证码错误”);
                }
            }
        }

if ( !isMainFrameError )
{
return ;
}

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

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

由于邮箱是亟需报到的,我们第一要效法邮箱的记名,如下图所示

图片 5 

武汉人于北京市创业群
—————————–7dbda2110d091a
Content-Disposition: form-data; name=”qqgroupid”

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”;

 

关押了点的解析,我们来具体探讨下C#源码的兑现,首先得获得到能够发送群邮件的群相关信息,具体的操作如下函数所示:

这么,我们学这个操作,先管账号可以发送的群列表及有关信息获得出来,如下图所示:

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

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

            // 设置属性
            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;

QQ的诸多,不是若创造的过多,就会发送,类似爱情买卖那篇歌:“爱情不是你想卖
想购入就是会卖“,腾讯做法是,”群邮不是公想发,想发即能够发的“,呵呵。

<!–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 = “”;

图片 6图片 7代码

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

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

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

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

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

 

冀各位提供思路,进一步缓解者问题,下面是切实可行的证明信息:

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

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

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

成就地方的步骤,发送邮件就多了,检测及之情节及当QQ邮件网站发送的始末各异不多,就是Cookie的内容发生局部差异,不过未清楚是什么原因,一直发送不成功,返回的HTML内容提示CGIExeption,可能是乌有了问题吧,需要连续探索。

纱步入了营销的时日,营销则进入精准、细化的操作等,QQ用户群的分类则是过多进行精准营销之公司同私困难盯在的同样块肥肉。与平常进行大邮件发送营销的异,QQ群邮件的出殡成本大没有,一涂鸦发送,就可以叫群里面成千上百的人头都接受邮件,比一般邮件发送的模式及准确率还好过多。用手工登录QQ邮箱发送邮件是一模一样栽无奈之挑选,效率并无愈,如果利用软件自动识别发送群,并能批量发送群邮件,那么效率将见面增强广大,不过使用QQ进行过多邮件的殡葬,也无须同一起好的业务,本文就是追这块的落实,抛砖引玉,希望大家齐开展上探讨。

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

         private void btnSendQunMail_Click(object sender, EventArgs e)

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);
}
}

图片 8图片 9代码

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

开辟QQ群列表,我们看到他会见列有有足发送邮件的群列表,如下所示:

图片 10 

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

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

            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);
                }
            }

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

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

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

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

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

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

        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”);

            return responseContent;
        }

            //取得一个动态构造的Hidden参数的称号与价值,该参数名及价值都是使用32员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;
            }
        }

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

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

 

呵呵,言归正传,我们登录邮箱,发送群邮件的时,就知这样的场面了,群只有对方运行发送,并且你投入到对方的森,这样才方可发送邮件的,我们看看网页界面:

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

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

}, 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”;

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

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

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

        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);

如上操作就是获取群列表的功效代码,剩下的我们继续跟如何发送群邮箱的,发送群邮件的操作以及一般的POST方式不同,他是下了相同种植特别之主意开展处理,也便是殡葬MultiPart内容措施。下面我发送了同一客宣传的邮件,监测到付的字符列表如下所示:

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

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