php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍

最近一直在忙,赶在这个假期结束的时候,发表一下此文,为了是让这些源码开源出来
当然这些方法可能不可取,但大致应该是这种方向了吧,由于目前做的一个UCHOME港台的站点
咱们策划说要改一下好友邀请里面的显示方式,开始我也没有在意,当时就说行!
到了弄这个的时候才发现,UCH里面的这个地方是用漫游型式做的,让人很是无解,啥都改不了!
唉,既然都答应了说可以,现在实际情况不行了,所以觉得不好意思,为了快速解决这问题,在GOOGLE,
百度上搜了个遍,结果又出忽意料,就一个126邮箱的开源例子,其它的都没有,有一牛哥留着QQ说要其它的源码,
可以加QQ买!不对此人评论了!俺花了点时间,整了整,结果就幸运的弄出来了几个,因为时间有限,目前手上的项目一直在弄,所以就没有管其它的,现在给出 GMAIL,HOTMAIL(MSN),YAHOO的邮箱联系人的PHP源代码:
 
1.GMAIL


代码如下:

<?php
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) );   //定义COOKIES存放的路径,要有操作的权限
define( "TIMEOUT", 1000 ); //超时设定
class GMAIL
{
        private function login($username, $password)
        {              
                //第一步:模拟抓取登录页面的数据,并记下cookies
                $cookies = array();
                $matches = array();
                //获取表单
                $login_url = "https://www.google.com/accounts/ServiceLoginAuth";
                $ch = curl_init($login_url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                $contents = curl_exec($ch);
                curl_close($ch);
                //模拟参数
                $name = array('dsh','timeStmp','secTok');
                foreach($name as $v) {
                     preg_match('/<input/s*type="hidden"/s*name="'.$v.'"/s*id="'.$v.'"/s*value="(.*?)"/s*//>/i', $contents, $matches);
                    if(!empty($matches)) {
                        $$v = $matches[1];
                        $matches = array();
                    }       
                }
                $server = 'mail';
                preg_match('/<input/s*type="hidden"/s*name="GALX"/s*value="(.*?)"/s*//>/i', $contents, $matches);
                if(!empty($matches)) {
                    $GALX = $matches[1];
                    $matches = array();
                }
                $timeStmp = time();

//第二步: 开始登录
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ServiceLoginAuth");
                curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
                curl_setopt($ch, CURLOPT_POST, 1);
                $fileds = "dsh=$dsh&Email=".$username."&Passwd={$password}&GALX=$GALX&timeStmp=$timeStmp&secTok=$secTok&signIn=Sign in&rmShown=1&asts=&PersistentCookie=yes";
                curl_setopt($ch, CURLOPT_POSTFIELDS, $fileds);
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);             
                curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $str = curl_exec($ch);              
                curl_close($ch);

//第三步:check Cookies即也算是个引导页面
                $ch = curl_init("https://www.google.com/accounts/CheckCookie?chtml=LoginDoneHtml");

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR);
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);                
                curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);    
                $str2 = curl_exec($ch);

curl_close($ch);

if (strpos($contents, "安全退出") !== false)
                {                       
                        return FALSE;
                }              
                return TURE;
        }

//获取邮箱通讯录-地址
        public function getAddressList($username, $password)
        {              
                if (!$this->login($username, $password))
                {
                        return FALSE;
                }
                //开始进入模拟抓取
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, "http://mail.google.com/mail/contacts/data/contacts?thumb=true&groups=true&show=ALL&enums=true&psort=Name&max=300&out=js&rf=&jsx=true");  //out=js返回json数据,不设置返回为xml数据  
                curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
                /*  对于返回xml数据时需要此设置
                curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/xml"));
                $str = "<?xml version=/"1.0/"?><object><array name=/"items/"><object><string name=/"func/">pab:searchContacts</string><object name=/"var/"><array name=/"order/"><object><string name=/"field/">FN</string><boolean name=/"ignoreCase/">true</boolean></object></array></object></object><object><string name=/"func/">user:getSignatures</string></object><object><string name=/"func/">pab:getAllGroups</string></object></array></object>";
                curl_setopt($ch, CURLOPT_POSTFIELDS, $str);

*/
                curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
                $contents = curl_exec($ch);
                curl_close($ch);
                //die($contents);
                //get mail list from the page information username && emailaddress
                /* 对于返回xml数据时的处理
                preg_match_all("/<string/s*name=/"EMAILREF/">(.*)<//string>/Umsi",$contents,$mails);
                preg_match_all("/<string/s*name=/"FN/">(.*)<//string>/Umsi",$contents,$names);
                $users = array();
                foreach($names[1] as $k=>$user)
                {
                    //$user = iconv($user,'utf-8','gb2312');
                    $users[$mails[1][$k]] = $user;
                }
                if (!$users)
                {
                    return '您的邮箱中尚未有联系人';
                } 
                */
                $contents = substr($contents, strlen('while (true); &&&START&&&'),  -strlen('&&&END&&& '));
                return $contents;
        }
}
$gamil = new GMAIL;
$res = $gamil->getAddressList('username@163.com','123456');
echo $res;
?>
<mce:script type="text/javascript"><!--
var data = <?php echo $res; ?>
alert(data['Body']); //json数据
// --></mce:script>

2.HOTMAIL(MSN)


代码如下:

<?php
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) );   //定义COOKIES存放的路径,要有操作的权限
define( "TIMEOUT", 1000 ); //超时设定
class MSN
{
        function getAddressList($username, $password)
        {              
                //第一步:模拟抓取登录页面的数据,并记下cookies
                $cookies = array();
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_URL, "http://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=".time()."&rver=6.0.5285.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=2052&id=64855&mkt=en");
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
                curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $str = curl_exec($ch);             
                curl_close($ch);
                //参数的分析
                $matches = array();      
                preg_match('/<input/s*type="hidden"/s*name="PPFT"/s*id="(.*?)"/s*value="(.*?)"/s*//>/i', $str, $matches);
                $PPFT = $matches[2];

preg_match('/srf_sRBlob=/'(.*?)/';/i', $str, $matches);
                $PPSX = $matches[1];

$type = 11;

$LoginOptions = 3;

$Newuser = 1;

$idsbho = 1;

$i2 = 1;

$i12 = 1;

$i3 = '562390';

$PPSX = 'Pa';
                //合并参数
                $postfiles = "login=".$username."&passwd=".$password."&type=".$type."&LoginOptions=".$LoginOptions."&Newuser=".$Newuser."&idsbho=".$idsbho."&i2=".$i2."&i3=".$i3."&PPFT=".$PPFT."&PPSX=".$PPSX."&i12=1";

//第二步:开始登录
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
                curl_setopt($ch, CURLOPT_URL, 'https://login.live.com/ppsecure/post.srf?wa=wsignin1.0&rpsnv=11&ct='.(time()+5).'&rver=6.0.5285.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=2052&id=64855&mkt=en&bk='.(time()+715)); //此处的两个time()是为了模拟随机的时间           
                curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $postfiles);
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
                //curl_setopt($ch, CURLOPT_HEADER, 1);
                curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$content = curl_exec($ch);
                curl_close($ch);

if( stripos($content,'WLWorkflow') !== FALSE ) {     //WLWorkflow登录页面JS
                    return false;      //登录失败
                }
                //获取location链接
                $matches = array();      
                preg_match('/window.location.replace/(/"(.*?)/"/)/i', $content, $matches);
                $url_contiune_1 = $matches[1]; //接下来的链接
                if(!$url_contiune_1) {
                    return false;
                }
                //第三步: 进入引导页面

$ch = curl_init();
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
                curl_setopt($ch, CURLOPT_URL, $url_contiune_1);
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
                curl_setopt($ch, CURLOPT_HEADER, 1);
                curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $content_2 = curl_exec($ch);

//echo $postfiles; 
                curl_close($ch);

//获取redicturl链接
                $matches = array();      
                preg_match('/<a/s*href=/"(.*?)/"/s*>/i', $content_2, $matches);
                $url_contiune_2 = $matches[1]; //接下来的链接
                if(!$url_contiune_2) {
                    return false;
                }

//跳过进入首页
                /*
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
                curl_setopt($ch, CURLOPT_URL, $url_contiune_2);
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
                curl_setopt($ch, CURLOPT_HEADER, 1);
                curl_setopt($ch, CURLOPT_TIMEOUT, 1000);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $content_3 = curl_exec($ch);

curl_close($ch);
                */
                //获取邮箱请求基址 读取host
                $matches = array();      
                preg_match('/(.*?)////(.*?)//(.*?)/i', $url_contiune_2, $matches);
                $url_contiune_3 = trim($matches[1]).'//'.trim($matches[2]); //首页定义的站点基址
                $url_4 = $url_contiune_3.'/mail/ContactMainLight.aspx?n=435707983'; //n后面的数字是随机数
                if(!$url_contiune_3) {
                    return false;
                }

//第四步: 开始获取邮箱联系人
                //base  $url_4
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
                curl_setopt($ch, CURLOPT_URL, $url_4);
                curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $str = curl_exec($ch);
                //分析数据 (此处的数据因为hotmail的JS处理机制,所以在页面上看不出来,源码上可以看到数据)
                return $this->hanlde_date($str);

}
        function hanlde_date($data) {
                $new_str = array();
                if(!empty($data)) {
                        $ops_start = stripos($data,'ic_control_data');
                        $ops_end = stripos($data,';',$ops_start);
                        $new_str = substr($data, $ops_start + strlen('ic_control_data = '), $ops_end - $ops_start - strlen('ic_control_data = ') );
                        return $new_str; //返回JSON对象
                } else {
                    return array();
                }

}
}
$msn = new MSN;
$res = $msn->getAddressList('username@111.com','123456');
echo $res;
?>
<mce:script type="text/javascript"><!--
var data = <?php echo $res; ?>
alert(data['ic1'][6]);
alert(data['ic1'][3]);
// --></mce:script>

3.YAHOO


代码如下:

<?php
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) );   //定义COOKIES存放的路径,要有操作的权限
define( "TIMEOUT", 1000 ); //超时设定
class YAHOO
{
        private function login($username, $password)
        {              
                //第一步:模拟抓取登录页面的数据,并记下cookies
                $cookies = array();
                $matches = array();

//获取表单
                $login_url = "https://login.yahoo.com/config/login?.src=fpctx&.intl=us&.done=http%3A%2F%2Fwww.yahoo.com%2F";
                $ch = curl_init($login_url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                $contents = curl_exec($ch);
                curl_close($ch);

//构造参数
                $name = array('tries','src','md5','hash','js','last','promo','intl','bypass','partner','u','v','challenge','yplus','emailCode','pkg','stepid','ev','hasMsgr','chkP','done','pd','pad','aad');
                $postfiles = array();
                $matches = array();
                foreach($name as $v) {
                     preg_match('/<input/s*type="hidden"/s*name=".'.$v.'"/s*value="(.*?)"/s*>/i', $contents, $matches);
                    if(!empty($matches)) {
                        $postfiles['.'.$v] = $matches[1];
                        $matches = array();
                    }
                    if($v == 'pd') {
                        $postfiles['.'.$v] = urlencode($postfiles['.'.$v]);
                    }      
                }
                $postfiles['pad'] = 5;
                $postfiles['aad'] = 6;
                $postfiles['login'] = urlencode($username);
                $postfiles['passwd'] = $password;
                $postfiles['.persistent'] = 'y';
                $postfiles['save'] = '';
                $postfiles['.done'] = urlencode($postfiles['.done']);
                //$postfiles['.pd'] = urlencode($postfiles['.pd']);
                $postargs = '';

foreach($postfiles as $k => $v){
                    $postargs .= $k.'='.$v.'&';       
                }
                $postargs = substr($postargs,0,-1);
                $request = "https://login.yahoo.com/config/login?";

//开始登录
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_URL, $request);

curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $postargs);
                curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
                curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $contents = curl_exec($ch);
                curl_close($ch);
                if (stripos($contents,'submit') != FALSE)
                {                       
                        return 0;
                }       
                return 1;
        }

//获取邮箱通讯录-地址
        public function getAddressList($username, $password)
        {              
                if (!$this->login($username, $password))
                {
                        return 0;
                }

//开始进入模拟抓取
            //get mail list from the page information username && emailaddress
            $url = "http://address.mail.yahoo.com/";
            $data = array( );
            if ( !$data = $this->hanlde_date( $url, $names, $emails) )
            {
                return FALSE;
            }
            echo '<pre>';
            print_r($data);
            return $data;
        }
        function hanlde_date( $url, &$names, &$emails)
        {
            $ch = curl_init( );
            curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
            curl_setopt( $ch, CURLOPT_URL, $url );
            curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $contents = curl_exec($ch);
            curl_close($ch);
            $temparr = array();
            preg_match_all('/InitialContacts/s*=/s*(.*?);/i',$contents,$temparr);
            return $temparr[1][0].';';       //匹配出JSON对象数组
        }
}
$yahoo = new YAHOO;
$res = $yahoo->getAddressList('username@yahoo.com.cn','123456');
?>
<mce:script type="text/javascript"><!--
var data = <?php echo $res; ?>
var obj1 = data[0];
alert(data[0]['contactName']);
// --></mce:script>

注:
163,126在网上的源码都有,在此就不一一的列出来了哦
当然此代码是自己个人的拙作,只是为了给大家此类问题做一个指引

(0)

相关推荐

  • 汇总PHPmailer群发Gmail的常见问题

    大家在PHPmailer群发Gmail时会遇到许多常见问题,下面为大家总结了一些常见问题,希望对大家的学习有所帮助. 1.Could not authenticate 首先,如果你没有使用循环的话,基本上就是账号或者密码错了: 如果使用循环来群发,send()方法结束之后记得调用Smtpclose(),发一次关一次,否则就会出现只能发一封邮件,第二次就崩溃的情况. 2.Gmail 首先,开启php的ssl权限 php开启openssl的方法,大多数情况下openssl是没有开启的,要想启用需要进

  • java、php、C#、asp实现短信群发功能的方法

    本文实例讲述了java.php.C#.asp实现短信群发功能的方法.分享给大家供大家参考.具体如下: 首先去http://www.smschinese.cn/上下载jar包以及注册用户,然后调用api接口,取得秘钥 1. ASP 调用例子 <% '常用函数 '输入url目标网页地址,返回值getHTTPPage是目标网页的html代码 function getHTTPPage(url) dim Http set Http=server.createobject("MSXML2.XMLHTT

  • php实现微信公众号无限群发

    利用微信客服接口进行各类消息的无限群发 sendAllMsg.php <?php /* Author:yf 使用说明:微信公众号无限群发接口,使用实例: $test = new SendAllMsg("你的appId","你的appSecret"); $test->sendMsgToAll(); //调用群发方法 注:1.使用条件:认证号或测试号 2.群发消息内容可为图文.文本.音乐等,$data具体内容参照微信开发文档/客服接口 3.若用户量过万,需

  • PHP邮件群发机实现代码

    原理: 第一:申请大量的邮箱帐号 腾讯的 126的 163的 新浪的 雅虎的 谷歌的 等等提供smtp服务的 第二:收集你要发送邮件的邮件列表 第三:遍历邮件列表,每一个邮件发送邮件 第四:用linux下定时脚本后台运行 我跑了两天 哈哈 ,因为为了尽可能的保证每一个都发送成功 原理是很简单,但是其中还是遇到很多的问题. 第一:邮件失败的问题,我这里采用两个方式解决,第一把大量的那些邮箱帐号依次去发送,直到成功.然后每次发送500封邮件 后把发送邮箱列表随机打散(避免一个持续失败). 我用的是p

  • PHP+swoole实现简单多人在线聊天群发

    由于本文的能力有限,有好多聊天逻辑的细节没有实现,只实现了群发,具体代码如下所示: php代码: $serv = new swoole_websocket_server("127.0.0.1",3999); //服务的基本设置 $serv->set(array( 'worker_num' => 2, 'reactor_num'=>8, 'task_worker_num'=>1, 'dispatch_mode' => 2, 'debug_mode'=>

  • phpmailer发送gmail邮件实例详解

    复制代码 代码如下: <html><head><title>PHPMailer - SMTP (Gmail) basic test</title></head><body><?php//error_reporting(E_ALL);error_reporting(E_STRICT);date_default_timezone_set('America/Toronto');require_once('../class.phpmai

  • PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】

    在网上找了一些,大部分都已经失效,为此我重新整理了一下:特别放出126的代码,163是比较容易抓取的:126有点变态多了一次跳转,比较麻烦 复制代码 代码如下: <?php /** * @file class.126http.php * 获得126邮箱通讯录列表 * @author jvones<jvones@gmail.com> http://www.jvones.com/blog * @date 2009-09-26 **/ class http126 { private funct

  • PHP实现邮件群发的源码

    复制代码 代码如下: <?php  // 请求 PHPmailer类 文件  require_once("class.phpmailer.php"); //发送Email函数  function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) {  $mail = new PHPMailer();   $mail->IsSMTP();                          

  • php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍

    最近一直在忙,赶在这个假期结束的时候,发表一下此文,为了是让这些源码开源出来当然这些方法可能不可取,但大致应该是这种方向了吧,由于目前做的一个UCHOME港台的站点咱们策划说要改一下好友邀请里面的显示方式,开始我也没有在意,当时就说行!到了弄这个的时候才发现,UCH里面的这个地方是用漫游型式做的,让人很是无解,啥都改不了!唉,既然都答应了说可以,现在实际情况不行了,所以觉得不好意思,为了快速解决这问题,在GOOGLE,百度上搜了个遍,结果又出忽意料,就一个126邮箱的开源例子,其它的都没有,有一

  • bat批处理一键登录网易163和126邮箱

    相信很多朋友都有网易163或者是126的邮箱,如果你平时不怎么使用Foxmail这类邮件客户端工具来收发邮件,而是喜欢通过Web浏览器进行收发邮件,那么每次都要打开邮箱登录地址,然后输入用户名和密码,实在是麻烦.下面就介绍一种一键登录网易163和126邮箱的方法,打开并登录到163和126邮箱就像在桌面上用快捷方式打开应用程序那样简单. 一.一键登录网易163邮箱方法 将如下代码复制到记事本中,然后保存为.bat批处理文件,这里取名为:htmer_163mail.bat,保存后双击运行即可. 复

  • python实现126邮箱发送邮件

    用Python发送126邮件,供大家参考,具体内容如下 今天想做个自动化邮件提醒的功能,最近刚好在学习python,都说python那么强大,想试一下python能否搞定,搜一下资料,果真可以,而且又简单通俗易懂 from email.mail.text import MIMEText import smtplib #发件人列表 to_list=["zhangsan@163.com", "lisi@qq.com"] #对于大型的邮件服务器,有反垃圾邮件的功能,必须登

  • Python自动登录126邮箱的方法

    本文实例讲述了Python自动登录126邮箱的方法.分享给大家供大家参考.具体实现方法如下: import sys, urllib2, urllib,cookielib import re cookie = cookielib.LWPCookieJar() opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) urllib2.install_opener(opener) url='http://entry.mail.12

  • Spring的Ioc模拟实现详细介绍

    简单来说就是当自己需要一个对象的时候不需要自己手动去new一个,而是由其他容器来帮你提供:Spring里面就是IOC容器. 例如: 在Spring里面经常需要在Service这个装配一个Dao,一般是使用@Autowired注解:类似如下 public Class ServiceImpl{ @Autowired Dao dao; public void getData(){ dao.getData(); } 在这里未初始化Dao直接使用是会报出空指针异常的,那么在Spring里面的做法就是通过反

  • python3+selenium实现126邮箱登陆并发送邮件功能

    本文实例为大家分享了python3实现126邮箱登陆并发送邮件的具体代码,供大家参考,具体内容如下 基于selenium,使用chrome浏览器,完成126邮箱登陆并发送发邮件功能,暂时未封装. from selenium import webdriver # 导入显示等待类 from selenium.webdriver.support.ui import WebDriverWait # 导入期望场景类 from selenium.webdriver.support import expect

  • hotmail,MSN 邮箱无法登陆的解决方法 秘密通道

    1.先以 http://www.hotmail.com 为登陆页.出现无法显示网页后,在地址栏的 http 后加 s 回车,即可. 2.MSN 的"秘密通道":https://login.live.com/login.srf  登陆此网页之后再转到你的空间,你会发现你已经顺利登陆.

  • 易语言实现163邮箱登录获取邮件列表等操作的代码

    常量数据表 .版本 2 .常量 提交参数, "<文本长度: 98>" .常量 协议头, "<文本长度: 386>" .常量 邮件post, "<文本长度: 383>" 全局变量表 .版本 2 .全局变量 全_Cookies, 文本型 .全局变量 sid, 文本型 .全局变量 全_Email, 文本型 登陆程序集 .版本 2 .程序集 窗口程序集_启动窗口 .子程序 _登陆按钮_被单击 .局部变量 文本, 文本型

  • 可多次使用的仿126邮箱选项卡的源码

    选项卡我们这论坛里有不少,但同一个页面可以多次使用的可能没多少,我这个可以在同一个页面里可以有多个选项卡块.用了一个背景图. 背景图片已上传上去了,支持我的帮顶一下,俺昨天花费几个小时啊.终于适应Ie,ff 浏览器.现在所有代码公开给大家.希望大家喜欢.要用的赶紧拿去用吧.类似于下面效果. screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='C

  • jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果

    但感觉这样写很没意思. jquery的优势就是简单的代码就能带来更好的用户体验. 所以就找几个我感觉实用的例子,拿出来介绍下.顺带把其中用到的操作和事件介绍下. html代码: <input type="text" id="address" value="请输入邮箱地址"/> jquery代码: 复制代码 代码如下: $(document).ready(function(){ $('#address').focus(function(

随机推荐