利用cURL登录126邮箱,并根据邮件ID来删除邮件
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来删除邮件相关推荐
- 探讨如何利用C#登录QQ邮箱进行群邮件的发送
http://www.cnblogs.com/wuhuacong/archive/2011/01/18/1937329.html 网络步入了营销的时代,营销则进入精准.细化的操作阶段,QQ用户群的分类 ...
- phpmail通过qq发邮箱失败_PHP中利用PHPMailer配合QQ邮箱实现发邮件
phpmailer实现给网站用户发送邮件,WordPress好像禁用了mail()函数,也不能直接使用自带的发送邮件,以防止暴露IP PHPMailer的介绍: 可运行在任何平台之上 支持SMTP验证 ...
- 11.selenium登录126邮箱出现定位问题解决
在用selenium登录126邮箱的时候会发现在定位到登录密码那里就会有出现问题了,一直定位不进去,接下来通过2个用例完成登录及发送邮件功能的实现方法 一.登录用例 在登录的时候会出现定位不到账号和密 ...
- 15_Python3.6+selenium2.53.6自动化测试_登录126邮箱
一.实现功能:成功登录126邮箱 1 打开126邮箱 2 切换iframe 3 输入用户名.密码,点击登录 3 切回,退出浏览器 二.实现代码 # -*- coding: utf-8 -*- ''' ...
- 使用Python登录QQ邮箱发送QQ邮件
这真是黑科技啊,原来推送的广告邮件就是这样产生的.好人用来发节日贺卡,给女朋友纪念邮件:坏人会学着发广告,垃圾邮件.我希望大家能学会了做些有趣的有意义的事情. 今天我带大家实现下简单的发邮件功能.我们 ...
- python自动注册邮箱_python2+selenium+mail,自动登录126邮箱
在进行登录126邮箱时有几个坑,要完美避过可以看一下下文,直接上代码: #encoding = utf-8 from selenium import webdriver import unittest ...
- python 自动登录方法_Python自动登录126邮箱的方法
本文实例讲述了Python自动登录126邮箱的方法.分享给大家供大家参考.具体实现方法如下: import sys, urllib2, urllib,cookielib import re cooki ...
- python+selenium 登录126邮箱
之前尝试用requests.post的办法登录126邮箱,但是126的邮箱在传递密码是是实时加密,没有解决掉实时加密的问题,因此失败: 最近在学习selenium,发现用selenium后登录126邮 ...
- 虫师 selenium 4.6登录126邮箱获得验证信息
1.怎么登录126邮箱的代码在我前面一篇文章可以看到,代码也有,只要按照虫师的代码添加几行信息即可,但是按照这里出现了一个问题, 2.怎么修改都没办法解决,后面了解到,在进入ifname以后,还需要退 ...
最新文章
- CRM系统助力企业找到最大盈利客户
- MySql解压版使用
- NeurIPS 2020 | 一种基于动作采样的简单高效的正则化强化学习方法
- Django用户注册、登录、注销(一)
- 使用Java流查询数据库
- Spring–设计领域模型和服务层
- 那些年我们一起写过的Python爬虫
- 云服务器是什么,有什么用?
- Python-复习-习题-13
- spring boot 教程(四) 统一异常处理
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。
- 通用电气联手软银 签署Predix软件许可协议
- 创建Maven时生成的properties标签内容解释
- VUE3-Cesium(entity、primitive总结及材质的修改)
- 从微信跳转到appstore下载App
- 电磁仿真CST软件学习笔记:模型创建篇(更新中)
- 航天生物计算机作文,科幻遨游太空作文(精选6篇)
- 32位和64位系统对于程序员的影响
- 有人说“星座对自己的运势预测和性格描述很准”。请谈读你的看法。 “星座热”的社会学解读
- 深入JUnit源码之Runner
热门文章
- react 组件异步加载
- qt写python教程视频_GitHub - qtg666/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
- Docker入门笔记(七)——镜像
- Linux下openssl库的arm-linux交叉编译
- php时间戳,PHP时间戳的实例讲解
- 比较PostgreSQL与MySQL两大开源关系数据库管理系统
- java.lang.ClassCastException: cn.tedu.domain.User cannot be cast to java.lang.String
- 动态规划练习28:Maximum sum
- 《SystemUI》修改SystemUI锁屏界面时间格式
- 01.在谷歌浏览器安装Vue开发者工具