获取sina邮箱联系人列表失败,求救!!!
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
<?php define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) ); //定义COOKIES存放的路径,要有操作的权限
define( "TIMEOUT", 1000 ); //超时设定
/**
* 获得sina邮箱通讯录列表 -- contactssina.class.php
*/
class contactssina
{
var $host = "";
function checklogin( $user, $password )
{
if ( empty( $user ) || empty( $password ) )
{
return 0;
}
$ch = <a style="color:#f60; text-decoration:underline;" title= "curl"href="https://www.php.cn/zt/17285.html" target="_blank">curl_init( );
curl_setopt( $ch, CURLOPT_REFERER, "http://mail.sina.com.cn/index.html" );
curl_setopt( $ch, CURLOPT_HEADER, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
curl_setopt( $ch, CURLOPT_URL, "http://mail.sina.com.cn/cgi-bin/login.cgi" );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, "&logintype=uid&u=".urlencode( $user )."&psw=".$password );
$contents = curl_exec( $ch );
curl_close( $ch );
if ( !preg_match( "/Location: (.*)\/cgi\/index\.php\?check_time=(.*)
/", $contents, $matches ) )
{
return 0;
}
$this->host = $matches[1];
return 1;
}
function getcontacts( $user, $password, &$result )
{
if ( !$this->checklogin( $user, $password ) )
{
return '登陆失败';
}
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_HEADER, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
curl_setopt( $ch, CURLOPT_URL, "http://mail.sina.com.cn/cgi-bin/login.cgi" );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, "&logintype=uid&u=".urlencode( $user )."&psw=".$password );
curl_exec( $ch );
curl_close( $ch );
$cookies = array( );
$bRet = $this->readcookies( COOKIEJAR, $cookies );
if ( !$bRet && !$cookies['SWEBAPPSESSID'] )
{
return '读取cookie失败';
}
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
curl_setopt( $ch, CURLOPT_URL, $this->host."/classic/addr_member.php" );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, "&act=list&sort_item=letter&sort_type=desc" );
$content = curl_exec( $ch );
curl_close( $ch );
$bRet = $this->_parsedata( $content, $result );
return "结果:".$bRet;
}
function readcookies( $file, &$result )
{
$fp = fopen( $file, "r" );
while ( !feof( $fp ) )
{
$buffer = fgets( $fp, 4096 );
$tmp = split( " ", $buffer );
$result[trim( $tmp[5] )] = trim( $tmp[6] );
}
return 1;
}
function _parsedata( $content, &$ar )
{
$ar = array( );
if ( !$content )
{
return '获取内容为空';
}
$data = json_decode( $content );
unset( $content );
foreach ( $data->data->contact as $value )
{
if ( preg_match_all( "/[a-z0-9_\.\-]+@[a-z0-9\-]+\.[a-z]{2,6}/i", $value->email, $matches ) )
{
$emails = array_unique( $matches[0] );
unset( $matches );
foreach ( $emails as $email )
{
$ar[$email] = $value->name;
}
}
}
return $ar;
}
}
$contactssina = new contactssina;
$res = $contactssina->getcontacts('****@sina.com','***',$result);
print_r($res);
?>
<div class="clear"></div>
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号