如何通过程序自动申请Gmail

jedliu 2008-11-13 12:41:50
想搞个自动注册邮箱的东东玩玩,所以找到Gmail,结果直接碰了钉子!

这里贴出主要代码,大家帮看看,或者谁有现成的代码也行!

原来的想法就是通过一个request去请求gmail的注册页面,获取必要的信息,如token、验证图片等信息,然后在将这些信息做为POST的内容再次发送出去。

下面是获得信息的方法:


private string contentMsg = "";//content

private void GetMsg()
{
...
try
{
HttpWebRequest requestNewGmail = WebRequest.Create(gmailUrl) as HttpWebRequest;

requestNewGmail.CookieContainer = holdCookie;

if (requestNewGmail != null)
{
using (HttpWebResponse getCreatAccountRes = requestNewGmail.GetResponse() as HttpWebResponse)
{
using (StreamReader accountInformReader =
new StreamReader(getCreatAccountRes.GetResponseStream()))
{
string resultText = accountInformReader.ReadToEnd();
//get messages
...
}
}
}
}
catch(Exception ex)
{
string tex = ex.Message;
}
}




private void CreateGmail()
{


try
{
//CreatContent
...
//我将其大致组成如下格式:
String.Format("dsh={0}&ktl={1}&ktf={2}&Email={3}&Passwd={4}"
+ "&PasswdAgain={5}&PersistentCookie={6}&rmShown={7}&nshk={8}&ie5OrAbove={9}"
+ "&loc={10}&newaccounttoken={11}&newaccounturl={12}&newaccounttoken_audio={13}"
+ "&newaccounturl_audio={14}&newaccountcaptcha={15}&privacy_policy_url={16}"
+ "&requested_tos_location={17}&requested_tos_language={18}&served_tos_location={19}"
+ "&served_tos_language={20}&submitbutton={21}",...)

byte[] content = Encoding.UTF8.GetBytes(createStr);

HttpWebRequest requestNewGmail = WebRequest.Create(gmailUrl) as HttpWebRequest;
requestNewGmail.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
requestNewGmail.KeepAlive = true;
requestNewGmail.ContentLength = content.Length;
requestNewGmail.ContentType = "application/x-www-form-urlencoded";
requestNewGmail.Method = "POST";
requestNewGmail.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";

using (Stream submitSm = requestNewGmail.GetRequestStream())
{
submitSm.Write(content, 0, content.Length);
}

string tst = "";

using (HttpWebResponse createResponse = requestNewGmail.GetResponse() as HttpWebResponse)
{
using (StreamReader stsm = new StreamReader(createResponse.GetResponseStream(), Encoding.Default))
{
tst = stsm.ReadToEnd();//这里获取的页面信息和刚开始几乎一模一样,没有进入到申请成功的页面
}
}

}
catch (Exception ex)
{
string tex = ex.Message;
}
}



哪位仁兄能帮帮忙啊,这里先谢了!
...全文
244 26 打赏 收藏 举报
写回复
26 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Kuntakimp 2008-12-21
留名啊,我最近在注册163邮箱,还差最后一步了,可是太烦了,搞了一个星期了!累啊累!
  • 打赏
  • 举报
回复
danjiewu 2008-11-22
[Quote=引用 23 楼 jedliu 的回复:]
引用 22 楼 danjiewu 的回复:
引用 17 楼 aimeast 的回复:
要是你都做到能分别出验证码的份上了,怎么连自动注册都完成不了?

真是笑话。


同感,我不相信有人连Google验证码都能识别却搞不定自动注册。
没有进入到申请成功的页面当然是因为你post的内容不对,至于为什么不对,我们又不做自动注册的为什么还要去研究?


不懂?!那你们来扯什么淡!
你们俩个是搞程序的?!
你们难道不知道图片验证可以通…
[/Quote]

Gmail的验证码就被你轻描淡写的OCR、矩阵算法就搞定了,很崇拜
captcha是人工智能的一个体现,http://caca.zoy.org/wiki/PWNtcha里有关于captcha的一些记录。
Google的验证也许是比yahoo的差一点,不过绝对是排在前列的。如果你能搞定的话也不需要在这里发帖了,Google会来挖你的
  • 打赏
  • 举报
回复
jedliu 2008-11-20
[Quote=引用 21 楼 keanulaw 的回复:]
你要保持Cookie的一致性,比如先请求某个页面,获取Cookie,然后提交注册信息的时候,再使用这个Cookie。另外,浏览器的版本也要注意,有可能你用IE7的时候是通过HTTP 1.1提交的,而实际上Google是HTTP 1.0的,所以也可能出现问题!
[/Quote]

说的好,朋友给我提供了一段JAVA的代码,我发现正是Cookie的原因,当然还有HTTP头的一些设置。
本来想把测好的代码发上来,但发现这里的人真TMD扯淡,算了,既然都这么牛,想搞自己想去吧!
  • 打赏
  • 举报
回复
jedliu 2008-11-20
[Quote=引用 22 楼 danjiewu 的回复:]
引用 17 楼 aimeast 的回复:
要是你都做到能分别出验证码的份上了,怎么连自动注册都完成不了?

真是笑话。


同感,我不相信有人连Google验证码都能识别却搞不定自动注册。
没有进入到申请成功的页面当然是因为你post的内容不对,至于为什么不对,我们又不做自动注册的为什么还要去研究?
[/Quote]

不懂?!那你们来扯什么淡!
你们俩个是搞程序的?!
你们难道不知道图片验证可以通过OCR、通过矩阵算法来做,HTTP我不熟,所以我无法搞清楚请求时发生了什么!
这点都不知道,还有精力来闲搞,真是垃圾!
  • 打赏
  • 举报
回复
danjiewu 2008-11-19
[Quote=引用 17 楼 aimeast 的回复:]
要是你都做到能分别出验证码的份上了,怎么连自动注册都完成不了?

真是笑话。
[/Quote]

同感,我不相信有人连Google验证码都能识别却搞不定自动注册。
没有进入到申请成功的页面当然是因为你post的内容不对,至于为什么不对,我们又不做自动注册的为什么还要去研究?
  • 打赏
  • 举报
回复
keanulaw 2008-11-19
你要保持Cookie的一致性,比如先请求某个页面,获取Cookie,然后提交注册信息的时候,再使用这个Cookie。另外,浏览器的版本也要注意,有可能你用IE7的时候是通过HTTP 1.1提交的,而实际上Google是HTTP 1.0的,所以也可能出现问题!
  • 打赏
  • 举报
回复
jedliu 2008-11-13
没法修改,晕倒,改都没得改啊!
还有发表帖子的时候,不保存状态,而且将页面直接刷新,导致我编了两次!
哎,CSDN啊,怎么会有这种BUG的!
  • 打赏
  • 举报
回复
wjp_116 2008-11-13
[Quote=引用 8 楼 jedliu 的回复:]
我说楼上的各位,既然我都做到这步了,验证码我肯定有办法读出来了,你们帮我看看如何申请才是关键啊!
[/Quote]
你那么牛,这一步你都能突破,那别的还能叫做问题吗?
只是一点耐心的问题,不过,我对你的这句话表示一点怀疑
  • 打赏
  • 举报
回复
qshzf 2008-11-13
是不是Google发现浏览器信息不对?
  • 打赏
  • 举报
回复
showmeone123 2008-11-13
楼上 能把你读取注册码的方法分享给大家么
  • 打赏
  • 举报
回复
aimeast 2008-11-13
[Quote=引用 19 楼 teebye 的回复:]
换个思路吧,比如你有一个gmail正好。里面有200封邀请。。自动申请的时候,其实就是自动发一些邀请的链接
[/Quote]
现在申请,不需要邀请也可以。
  • 打赏
  • 举报
回复
jedliu 2008-11-13
我说楼上的各位,既然我都做到这步了,验证码我肯定有办法读出来了,你们帮我看看如何申请才是关键啊!
  • 打赏
  • 举报
回复
teebye 2008-11-13
换个思路吧,比如你有一个gmail正好。里面有200封邀请。。自动申请的时候,其实就是自动发一些邀请的链接
  • 打赏
  • 举报
回复
teebye 2008-11-13
没戏
  • 打赏
  • 举报
回复
空心兜兜 2008-11-13
确实,而Google和微软的码,那叫一个难认
  • 打赏
  • 举报
回复
aimeast 2008-11-13
上面说的没错,起码验证码要自己填。
  • 打赏
  • 举报
回复
cpio 2008-11-13

验证码你怎么识别的啊?
  • 打赏
  • 举报
回复
tete 2008-11-13
可以做成半自动,验证吗还是要自己填的
  • 打赏
  • 举报
回复
yeah920 2008-11-13
不行的.
  • 打赏
  • 举报
回复
XPingguo 2008-11-13
难道他们没有图片验证码的吗
POST过去有什么用。
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
C#
加入

10.7w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
申请成为版主
帖子事件
创建了帖子
2008-11-13 12:41
社区公告

让您成为最强悍的C#开发者