16
2005
05

把126.com的Email变成HTML空间

使用说明:
1. 在web使用界面下创建一个文件夹
2. 留意该文件夹的链接,如http://m142.mail.126.com/coremail/fcg/ldapapp?funcid=mails&sid=BAzOaVKskuhAAcEW&fid=1116136394
   &fid=........ 为要获得的fid值
3. 将欲共享的文件放到该新建文件夹下即可;

注意事项:
1. 一封邮件只能附带一个附件
2. 目前只能读取文件夹内第一页的邮件,可适当增加:每页最多显示邮件数
3. 为保安全,不要用该信箱存放重要资料


<?php


///////////////////////

// 126.com 信箱共享

// ver: 0.1

// date: 2005-05-15

//

// 使用说明:

// 1. 在web使用界面下创建一个文件夹

// 2. 留意该文件夹的链接,如http://m142.mail.126.com/coremail/fcg/ldapapp?funcid=mails&sid=BAzOaVKskuhAAcEW&fid=1116136394

//    &fid=........ 为要获得的fid值

// 3. 将欲共享的文件放到该新建文件夹下即可;

//

// 注意事项:

// 1. 一封邮件只能附带一个附件

// 2. 目前只能读取文件夹内第一页的邮件,可适当增加:每页最多显示邮件数

// 3. 为保安全,不要用该信箱存放重要资料

//

//

// 声明:本程序仅作为学习、测试用途,不保证安全,请勿滥用。敬请通过正常方式使用信箱,保障双方权益。

//////////////////////////////////////////////



/////////////////////////////////////////////


$user = "";        // 126.com mailbox username, exp. peter

$password = "";  // your password.

$fid = "";


///////////////////////



////////////////////// DO NOT MODIFY BELOW ////////////////////////

////////////////////// 莫更改下述内容 /////////////////////////////


/////// Step.1 Login ////////////////

$host = "entry.126.com";

$predata = "POST /cgi/login?language=0&style=-1 HTTP/1.1\r\nHost: ".$host."\r\n";

$postdata = "domain=126.com&language=0&bCookie=&user=".$user."&pass=".$password."&style=-1&enter.x=%B5%C7%A1%A1%C2%BC";

$subdata = "Referer: http://www.126.com/\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($postdata)."\r\n\r\nData found after header end:\r\n\r\n".$postdata."\r\n";


$getText = conn($host, $predata, $subdata);

preg_match("/Location: http:\/\/(.*?)\.mail\.126\.com.*sid=(.*)\r\n/i", $getText, $match1);


/////////

// Array

// (

//     [0] => Location: http://m151.mail.126.com/cgi/ldapapp?funcid=main&sid=WAyamYHPWRYAMBZd

//     [1] => m151

//     [2] => WAyamYHPWRYAMBZd

// )

///////////////////////



/////// Step.2 Share Mailbox ////////////////

$host = $match1[1].".mail.126.com";

$predata = "GET /coremail/fcg/ldapapp?funcid=mails&sid=".$match1[2]."&fid=".$fid." HTTP/1.1\r\nHost: ".$host."\r\n";

$subdata = "\r\n";

$getText = conn($host, $predata, $subdata);

$getText = substr($getText, strpos($getText, "<!--邮件内容部分start-->"), strpos($getText, "<!--内容部分end-->") - strpos($getText, "<!--邮件内容部分start-->"));

$getText = str_replace("\r\n", " ", $getText);

preg_match_all("/div class=\"list4\".*?(mid=.*?)&fid=.*?>(.*?)<\/a> <\/div/", $getText, $match2, PREG_SET_ORDER);


///////////

// Array

// (

//     [0] => Array

//         (

//             [1] => mid=1tbiXASnz0Jwx1CAvwAAs%252B%520A92%250A8388762%250A1116077941

//             [2] => test

//         )


//     [1] => Array

//         (

//             [1] => mid=1tbiUxqDW0I5bgwXZgAAsb%250A83%520A8346%250A1116077941

//             [2] => photo

//         )

//     ......

//     [n] =>

// )

/////////////////////////////////



/////// Step.3 Get Attachment Url ////////////////

$attach = 1;

foreach ($match2 as $att) {

$predata = "GET /coremail/fcg/ldmsapp?funcid=readlett&sid=".$match1[2]."&".$att[1]."&fid=".$fid."&ord=0&desc=1&start=0&tempname=onepageread.htm HTTP/1.1\r\nHost: ".$host."\r\n";

$getText = conn($host, $predata, $subdata);

$getText = substr($getText, strpos($getText, "打开:"), strpos($getText, "<font color=\"blue\">下载</font>")- strpos($getText, "打开:"));

preg_match("/lettsid=(.*)&mid.*filename=(.*)&download/", $getText, $match3);


$attachment[$attach]['title'] = $att[2];

$attachment[$attach]['mid'] = $att[1];

$attachment[$attach]['filename'] = $match3[2];

$attachment[$attach]['lettsid'] = $match3[1];

$attach ++;

}


//////////

// Array

// (

//     [1] => Array

//         (

//             [title] => test

//             [mid] => mid=1tbiXASnz0Jwx1CAvwAAs%252B%520A92%250A8388762%250A1116077941

//             [filename] => 426755.jpg

//             [lettsid] => BBILPwAaKBDAmiUo

//         )

//

//     [2] => Array

//         (

//             [title] => photo

//             [mid] => mid=1tbiUxqDW0I5bgwXZgAAsb%250A83%520A8346%250A1116077941

//             [filename] => 20050408.rar

//             [lettsid] => BBILPwAaKBDAmiUo

//         )

//

// )

////////////////////////////////////////



/////// Step.4 Display ////////////////

$attach = 1;

print "声明:本程序仅作为学习、测试用途,不保证安全,请勿滥用。敬请通过正常方式使用信箱,保障双方权益。<br /><br />";

foreach($attachment as $item) {

print $attach." <a href=\"http://".$host."/coremail/fcg/ldmsapp/".$item['filename']."?lettsid=".$item['lettsid']."&".$item['mid']."&funcid=readpart&part=3&filename=".$item['filename']."&download=1\">".$item['title']." => ".$item['filename']."</a><br />";

$attach ++;

}

////////////////////////////////////////



function conn($host, $predata, $subdata) {


$text = null;

$data="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/20050414 Firefox/1.0.3\r\n";

$data.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";

$data.="Accept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";

$data.="Keep-Alive: 300\r\nConnection: Close\r\n";


$alldata = $predata.$data.$subdata;


// print $alldata."\n";


$start_time = time();

$fp=fsockopen($host, 80, $errno, $errstr, 5);

if (!$fp) {

die("Connect Timeout.\n");

} else {

socket_set_blocking($fp, True);

socket_set_timeout($fp, 5);

fputs($fp, $alldata);

while (!feof($fp)) {

$text .= fread($fp, 2000);


$diff = time() - $start_time;

if ($diff > 24) {

die("Timeout!\n");

}


$status = socket_get_status($fp);

if ($status['timed_out']) {

die("Stream Timeout!\n");

}

}

}

fclose($fp);

return $text;

}


?>

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。