1 <? 
  2 $user="*****@126.com";
  3 $pass="******";
  4 $mail=new Mail126($user,$pass);
  5 echo $mail->verifyLogin()==true?"Login Successfully":"Login Failed";
  6 $mid="173:1tbirQ6+PEX9ejU9qQAAsC";
  7 echo "<BR/>";
  8 echo $mail->deleteMailById($mid)==true?"Delete successfully":"Delete Mail $mid Failed";
  9 
 10 class Mail126{
 11     private $user;
 12     private $pass;
 13     private $sid;
 14     private $cookie;
 15     private $is_valid;
 16     private $replace_url;
 17     public function Mail126($user,$pass){
 18         $this->user=$user;
 19         $this->pass=$pass;
 20         $this->is_valid=false;
 21     }
 22     public function verifyLogin(){
 23         //验证登录,顺便得到Sid
 24         $url="https://reg.163.com/logins.jsp?type=1&product=mail126&url=http://entry.mail.126.com/cgi/ntesdoor?hid%3D10010102%26lightweight%3D1%26verifycookie%3D1%26language%3D0%26style%3D-1";
 25         $ch=curl_init($url);
 26         $this->cookie=tempnam("./tmp","xss126");
 27         $referer_login="http://www.126.com";
 28         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 29         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 30         curl_setopt($ch, CURLOPT_HEADER, true);
 31         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
 32         curl_setopt($ch, CURLOPT_POST, true);
 33         curl_setopt($ch, CURLOPT_REFERER, $referer_login);
 34 
 35         $fields_post = array(
 36             'username'=> $this->user,
 37             'password'=> $this->pass,
 38             'verifycookie'=>1,
 39             'style'=>-1,
 40             'product'=> 'mail126',
 41             'selType'=>-1,
 42             'secure'=>'on'
 43         );
 44 
 45         $headers_login = array(
 46             'User-Agent'        => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0',
 47             'Referer'           => 'http://www.126.com'
 48         );
 49 
 50         $fields_string = '';
 51 
 52         foreach($fields_post as $key => $value){
 53             $fields_string .= $key . '=' . $value . '&';
 54         }
 55         $fields_string = rtrim($fields_string , '&');
 56         curl_setopt($ch, CURLOPT_COOKIESESSION, true);
 57         //关闭连接时,将服务器端返回的cookie保存在以下文件中
 58         curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie);
 59         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_login);
 60         curl_setopt($ch, CURLOPT_POST, count($fields));
 61         curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
 62         $result= curl_exec($ch);
 63         curl_close($ch);
 64         preg_match("/replace\(\"(.*?)\"\)\;/", $result, $mtitle);
 65         $url = $mtitle[1];
 66         //echo "<p style='color:green;'>Redirect URL".$url."</p>";
 67         if(!$url){
 68             return false;
 69         }else{
 70             $this->is_valid=true;
 71             $this->sid=$this->getSid($url);
 72             return true;
 73         }
 74     }//end of function verifyLogin
 75     
 76     public function getSid($replace_url){
 77         if($this->is_valid == false){
 78             return null;
 79         }
 80         if($this->sid){
 81             return $this->sid;
 82         }
 83         $ch = curl_init($replace_url);
 84         $headers = array(
 85            'User-Agent'        => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0'
 86         );
 87 
 88         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 89         curl_setopt($ch, CURLOPT_HEADER, true);
 90         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
 91         curl_setopt($ch, CURLOPT_POST, true);
 92         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 93         //将之前保存的cookie信息,一起发送到服务器端
 94         curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie);
 95         curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie);
 96         $result = curl_exec($ch);
 97         curl_close($ch);
 98         preg_match("/replace\(\"(.*?)\"\)\;/", $result, $mtitle);
 99         $url = $mtitle[1];
100         if(!$url){
101             return null;
102         }
103         $this->replace_url=$url;
104         //第二次跳转
105         $ch = curl_init($url);
106         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
107         curl_setopt($ch, CURLOPT_HEADER, true);
108         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
109         curl_setopt($ch, CURLOPT_POST, true);
110         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
111         //将之前保存的cookie信息,一起发送到服务器端
112         curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie);
113         curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie);
114         $result = curl_exec($ch);
115         curl_close($ch);
116         $fp=fopen("126_log.txt","w");
117         fwrite($fp,$result);
118         fclose($fp);
119         //取得sid
120         preg_match('/sid=[^\"].*/', $result, $location);
121         return substr($location[0], 4, -1);
122     }//end of function getSid
123     
124     function deleteMailById($mid){
125         if(!$this->is_valid){
126             return false;
127         }
128         if(!$this->sid){
129             return false;
130         }
131         
132         $URL="http://eg1a51.mail.126.com/a/s?"."sid=".$this->sid."&func=mbox:updateMessageInfos";
133         $xml_data = '<?xml version="1.0" ?><object><array name="ids">'.
134             '<string>'.$mid.'</string></array><object name="attrs"><int name="fid">4'.
135             '</int></object></object>';
136         //Set referer
137         $referer="http://eg1a51.mail.126.com/a/j/dm3/index.jsp?sid=".$sid;
138         //Set the header information
139         $header[]="Accept:text/javascript";
140         $header[]="Content-type:application/xml";
141         $ch = curl_init($URL);
142         curl_setopt($ch, CURLOPT_MUTE, 1);
143         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
144         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
145         curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie); //当前使用的cookie
146         curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie); //服务器返回的新cookie
147         curl_setopt($ch, CURLOPT_POST, 1);
148         curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
149         curl_setopt($ch, CURLOPT_REFERER, $referer);
150         curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data");
151         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
152         $output = curl_exec($ch);
153         curl_close($ch);
154         if(strpos($output,"S_OK",1) > 0){
155             return true;
156         }
157         return false;
158     }//end of delete Mai by Id
159 }
160 ?>

转载于:https://www.cnblogs.com/cmleung/archive/2010/05/07/1729874.html

利用cURL登录126邮箱,并根据邮件ID来删除邮件相关推荐

  1. 探讨如何利用C#登录QQ邮箱进行群邮件的发送

    http://www.cnblogs.com/wuhuacong/archive/2011/01/18/1937329.html 网络步入了营销的时代,营销则进入精准.细化的操作阶段,QQ用户群的分类 ...

  2. phpmail通过qq发邮箱失败_PHP中利用PHPMailer配合QQ邮箱实现发邮件

    phpmailer实现给网站用户发送邮件,WordPress好像禁用了mail()函数,也不能直接使用自带的发送邮件,以防止暴露IP PHPMailer的介绍: 可运行在任何平台之上 支持SMTP验证 ...

  3. 11.selenium登录126邮箱出现定位问题解决

    在用selenium登录126邮箱的时候会发现在定位到登录密码那里就会有出现问题了,一直定位不进去,接下来通过2个用例完成登录及发送邮件功能的实现方法 一.登录用例 在登录的时候会出现定位不到账号和密 ...

  4. 15_Python3.6+selenium2.53.6自动化测试_登录126邮箱

    一.实现功能:成功登录126邮箱 1 打开126邮箱 2 切换iframe 3 输入用户名.密码,点击登录 3 切回,退出浏览器 二.实现代码 # -*- coding: utf-8 -*- ''' ...

  5. 使用Python登录QQ邮箱发送QQ邮件

    这真是黑科技啊,原来推送的广告邮件就是这样产生的.好人用来发节日贺卡,给女朋友纪念邮件:坏人会学着发广告,垃圾邮件.我希望大家能学会了做些有趣的有意义的事情. 今天我带大家实现下简单的发邮件功能.我们 ...

  6. python自动注册邮箱_python2+selenium+mail,自动登录126邮箱

    在进行登录126邮箱时有几个坑,要完美避过可以看一下下文,直接上代码: #encoding = utf-8 from selenium import webdriver import unittest ...

  7. python 自动登录方法_Python自动登录126邮箱的方法

    本文实例讲述了Python自动登录126邮箱的方法.分享给大家供大家参考.具体实现方法如下: import sys, urllib2, urllib,cookielib import re cooki ...

  8. python+selenium 登录126邮箱

    之前尝试用requests.post的办法登录126邮箱,但是126的邮箱在传递密码是是实时加密,没有解决掉实时加密的问题,因此失败: 最近在学习selenium,发现用selenium后登录126邮 ...

  9. 虫师 selenium 4.6登录126邮箱获得验证信息

    1.怎么登录126邮箱的代码在我前面一篇文章可以看到,代码也有,只要按照虫师的代码添加几行信息即可,但是按照这里出现了一个问题, 2.怎么修改都没办法解决,后面了解到,在进入ifname以后,还需要退 ...

最新文章

  1. CRM系统助力企业找到最大盈利客户
  2. MySql解压版使用
  3. NeurIPS 2020 | 一种基于动作采样的简单高效的正则化强化学习方法
  4. Django用户注册、登录、注销(一)
  5. 使用Java流查询数据库
  6. Spring–设计领域模型和服务层
  7. 那些年我们一起写过的Python爬虫
  8. 云服务器是什么,有什么用?
  9. Python-复习-习题-13
  10. spring boot 教程(四) 统一异常处理
  11. 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。
  12. 通用电气联手软银 签署Predix软件许可协议
  13. 创建Maven时生成的properties标签内容解释
  14. VUE3-Cesium(entity、primitive总结及材质的修改)
  15. 从微信跳转到appstore下载App
  16. 电磁仿真CST软件学习笔记:模型创建篇(更新中)
  17. 航天生物计算机作文,科幻遨游太空作文(精选6篇)
  18. 32位和64位系统对于程序员的影响
  19. 有人说“星座对自己的运势预测和性格描述很准”。请谈读你的看法。 “星座热”的社会学解读
  20. 深入JUnit源码之Runner

热门文章

  1. react 组件异步加载
  2. qt写python教程视频_GitHub - qtg666/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
  3. Docker入门笔记(七)——镜像
  4. Linux下openssl库的arm-linux交叉编译
  5. php时间戳,PHP时间戳的实例讲解
  6. 比较PostgreSQL与MySQL两大开源关系数据库管理系统
  7. java.lang.ClassCastException: cn.tedu.domain.User cannot be cast to java.lang.String
  8. 动态规划练习28:Maximum sum
  9. 《SystemUI》修改SystemUI锁屏界面时间格式
  10. 01.在谷歌浏览器安装Vue开发者工具