python远程邮件控制电脑升级版


Posted in Python onMay 23, 2019

由于前边Python3.4实现远程控制电脑开关机写的远程操控电脑,使用的POP登陆有使用频率限制,导致非常被动,有时候邮件无法读取,下面改用POST网易邮箱的方法,获取邮件

import urllib.request as request
import http.cookiejar as cookiejar
import urllib.parse
import re
import smtplib
from email.mime.text import MIMEText
import time
import win32com.client
import win32con
import win32api
import os
cj = cookiejar.LWPCookieJar()
cookiesupport = request.HTTPCookieProcessor(cj)
opener = request.build_opener(cookiesupport, request.HTTPHandler)
request.install_opener(opener)
speak = win32com.client.Dispatch('SAPI.SPVOICE')
def Login(username, pwd):
 post_url = 'https://mail.163.com/entry/cgi/ntesdoor?df=mail163_letter&from=web&funcid=loginone&iframe=1&language=-1&passtype=1&product=mail163&net=c&style=-1&race=254_292_276_bj&uid='+ username + "@163.com"
 headers = {
 'Host': 'mail.163.com',
 'Origin': 'http://mail.163.com',
 'Referer': 'http://mail.163.com/',
 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.39 Safari/537.36'
 }
 post_data = {'savelogin':'0',
 'url2': 'http://mail.163.com/errorpage/error163.htm',
 'username': username,
 'password': pwd
 }
 post_data = urllib.parse.urlencode(post_data).encode('gbk')
 req = request.Request(post_url, post_data, headers=headers)
 page = request.urlopen(req, timeout=20).read().decode('gb2312')
 sid = re.compile(r'sid=(.+?)&df').findall(page)[0]
 return sid
def check_email():
 mail_url = 'http://mail.163.com/js6/s?sid='+Login('******', '******')+'&func=mbox:listMessages&LeftNavRecieveMailClick=1&error=no%20Conext.module&mbox_folder_enter=1'
 mail_data = {
 'var': '<?xml version="1.0"?><object><array name="items"><object><string name="func">mbox:getAllFolders</string><object name="var"><boolean name="stats">true</boolean><boolean name="threads">false</boolean></object></object><object><string name="func">mbox:getFolderStats</string><object name="var"><array name="ids"><string>1,3,18</string></array><boolean name="messages">true</boolean><boolean name="threads">false</boolean></object></object><object><string name="func">mbox:listTags</string><object name="var"><boolean name="stats">true</boolean><boolean name="threads">false</boolean></object></object><object><string name="func">mbox:statMessages</string><object name="var"><array name="fids"><int>1</int><int>2</int><int>3</int><int>4</int><int>18</int><int>5</int></array><object name="filter"><string name="defer">19700101:</string></object></object></object><object><string name="func">mbox:statMessages</string><object name="var"><array name="fids"><int>1</int><int>2</int><int>3</int><int>4</int><int>18</int><int>5</int></array><object name="filter"><string name="defer">:20150617</string></object></object></object></array></object>'
 }
 mail_data = urllib.parse.urlencode(mail_data).encode('utf-8')
 req = request.Request(mail_url, mail_data)
 page = request.urlopen(req, timeout=20).read().decode('utf-8', 'ignore')
 subject = re.compile(r'<string name="subject">(.+?)</string>').findall(page)
 return (subject[len(subject)-1])
def send_email():
 user = '******@163.com'
 pwd = '*******'
 to = ['*****@163.com', '*****@139.com']
 msg = MIMEText('')
 msg['Subject'] = 'OK'
 msg['From'] = user
 msg['To'] = ','.join(to)
 s = smtplib.SMTP('smtp.163.com')
 s.login(user, pwd)
 s.sendmail(user, to, msg.as_string())
 s.close()
if __name__ == '__main__':
 while True:
 try:
  cmd = check_email()
  command1 = {'关机': 'shutdown -s -t 1',
   '重启': 'shutdown -r',
   '关闭浏览器': 'taskkill /F /IM chrome.exe',
   '关闭QQ': 'taskkill /F /IM QQ.exe',
   '关闭qq': 'taskkill /F /IM QQ.exe',
   '关闭wifi': 'taskkill /F /IM kwifi.exe',
   '关闭音乐': 'taskkill /F /IM cloudmusic.exe',
   '打开音乐': 'D:\\网易云音乐\\CloudMusic\\cloudmusic.exe',
   '打开摄像头': 'D:\\Python源码\\摄像头监控.py',
   '打开监控': 'D:\\Python源码\\winSpyon.py',
   '打开QQ': 'D:\\腾讯QQ\\Bin\\QQ.exe',
   '打开qq': 'D:\\腾讯QQ\\Bin\\QQ.exe',
   '打开wifi': 'D:\\Chrome\\kwifi\\kwifi.exe',
   '打开ss': 'D:\\代理服务器\\Shadowsocks-win-dotnet4.0-2.3\\Shadowsocks.exe'
   }
  if cmd in command1.keys():
  speak.Speak('计算机即将' + cmd)
  send_email()
  if cmd.find('打开') == 0:
   win32api.ShellExecute(0, 'open', command1[cmd], '', '', 1)
   if cmd == '打开音乐':
   time.sleep(35)
   win32api.keybd_event(17, 0, 0, 0)
   win32api.keybd_event(18, 0, 0, 0)
   win32api.keybd_event(32, 0, 0, 0)
   win32api.keybd_event(32, 0, win32con.KEYEVENTF_KEYUP, 0)
   win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0)
   win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
  else:
   os.system(command1[cmd])
  speak.Speak('计算机已经' + cmd + ',任务执行完毕!')
  time.sleep(60)
 except:
  time.sleep(120)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 Python
Python计算程序运行时间的方法
Dec 13 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
PyCharm2020.3.2安装超详细教程
Feb 08 Python
SpringBoot首页设置解析(推荐)
Feb 11 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
python实现简单石头剪刀布游戏
Oct 24 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 Python
python操作日志的封装方法(两种方法)
May 23 #Python
Python除法之传统除法、Floor除法及真除法实例详解
May 23 #Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 #Python
python实现远程控制电脑
May 23 #Python
python日志logging模块使用方法分析
May 23 #Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 #Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 #Python
You might like
PHP与已存在的Java应用程序集成
2006/10/09 PHP
php 常用字符串函数总结
2008/03/15 PHP
php下统计用户在线时间的一种尝试
2010/08/26 PHP
php中chdir()函数用法实例
2014/11/13 PHP
php链表用法实例分析
2015/07/09 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
介绍Python中的fabs()方法的使用
2015/05/14 Python
python3 shelve模块的详解
2017/07/08 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
老生常谈python中的重载
2018/11/11 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
python 实现敏感词过滤的方法
2019/01/21 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
迪奥美国官网:Dior美国
2019/12/07 全球购物
华为慧通笔试题
2016/04/22 面试题
内容编辑个人求职信
2013/12/10 职场文书
公司承诺书范文
2014/05/19 职场文书
作风整顿剖析材料
2014/09/30 职场文书
2014年网管工作总结
2014/12/11 职场文书
平安建设汇报材料
2014/12/29 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书