读取邮箱标题,实现关机

Posted yanhonghong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取邮箱标题,实现关机相关的知识,希望对你有一定的参考价值。

封装得到邮件标题的函数

 1 import poplib
 2 import email
 3 from email.header import decode_header
 4 
 5 #定义获取邮件标题的函数
 6 def get_email_subject(username,password):
 7 
 8     #实例化邮件对象
 9     read = poplib.POP3("pop.163.com",timeout=3600)
10 
11     #登录
12     read.user(username) #用户名
13     read.pass_(password) #客户端授权码
14 
15     #获取邮件总数,邮件大小
16     total_num,total_size = read.stat()
17 
18     #获取最新的一封邮件head
19     top_email = read.top(total_num,0) #total_num 代表获取第几个邮件,0代表邮件头后面第几行
20     
21     #将邮件头信息放在temp列表中
22     temp = []
23     for i in top_emain[1]:
24         temp.append(i)
25 
26     #将邮件头变成字符串
27     email_str = 
.join(temp)
28 
29 
30     #将字符串解析为Message类型
31     message = email.message_from_string(email_str)
32 
33     #拿到邮件主题
34     subject_str = message[subject]
35 
36     #解码得到主题
37     subject = decode_header(subject_str)
38     content = subject[0][0]
39     enc_type = subject[0][1] #类型
40     
41     if enc_type:
42             subject_decode = content.decode(enc_type)
43         else:
44             subject_decode = content
45     
46     #返回主题,邮件对象,邮件总数
47     return subject_decode, read, total_num

读取邮件标题实现关机

 1 import os
 2 import time
 3 from test01 import get_email_subject #导入函数
 4 
 5 command_set = {
 6     "重启":"shutdown -r -t ",
 7     "关机":"shutdown -s -t ",
 8 }
 9 
10 
11 username = "XXX" #用户名
12 userpwd = "XXX"    #客户端授权码
13 control_pwd = "XXX" #身份识别码
14 
15 
16 while True:
17 
18     #调用函数
19     subject_or,read,total_num = get_email_subject(email_addr,email_password)
20     subject = subject_or.replace("",",") #逗号替换
21     subject_list = subject.split(",")#转化成列表
22     
23     if len(subject_list) >= 3:#判断列表长度
24         
25         #拿到命令、时间、身份验证码
26         command,execute_time,password = subject_list[:3]
27         
28         if execute_time.isdecimal() and int(execute_time) < 60:
29             execute_time = "60"
30         
31         #命令拼接
32         execute_command = command_set[command] + execute_time
33 
34         read.dele(total_num) #删除最新一封邮件
35         read.quit() #关闭邮件
36 
37         if control_pwd == password: #身份验证
38             os.system(execute_command) #执行命令
39             break
40     else:
41         time.sleep(2)

 

以上是关于读取邮箱标题,实现关机的主要内容,如果未能解决你的问题,请参考以下文章

教你用Python代码实现微信遥控电脑,简单骚操作值得学习

阿波罗读取乐观响应的片段

Asterisk:在SIP呼叫中120秒后“TLS清除关机警报读取数据”

深入解析Android关机

angularJS使用ocLazyLoad实现js延迟加载

GLSL:无法从 FBO 读取纹理并使用片段着色器渲染到另一个 FBO