163邮箱远程控制个人电脑
发布于 8 个月前 阅读权限 无需登录 作者 draven 10042 次浏览 来自 知识碎片

import poplib from email.parser import Parser import base64 import os import time

def get_parsed_msg(): # 邮箱个人信息 useraccount = ‘[email protected]’ password = ‘xxxxxx’ #163需要开启pop3和smtp,这个密码是 授权码 # 邮件服务器地址 pop3_server = ‘pop.163.com’ # 开始连接到服务器 server = poplib.POP3(pop3_server) # 可选项: 打开或者关闭调试信息,1为打开,会在控制台打印客户端与服务器的交互信息 server.set_debuglevel(1) # 可选项: 打印POP3服务器的欢迎文字,验证是否正确连接到了邮件服务器 #print(server.getwelcome().decode(‘utf8’)) # 开始进行身份验证 server.user(useraccount) server.pass_(password) # 使用list()返回所有邮件的编号,默认为字节类型的串 resp, mails, octets = server.list() #print(‘邮件总数: {}’.format(len(mails))) # 下面单纯获取最新的一封邮件 total_mail_numbers = len(mails) # 默认下标越大,邮件越新,所以total_mail_numbers代表最新的那封邮件 response_status, mail_message_lines, octets = server.retr(total_mail_numbers) #print(‘邮件获取状态: {}’.format(response_status)) #print(‘原始邮件数据:\n{}’.format(mail_message_lines)) #print(‘该封邮件所占字节大小: {}’.format(octets)) msg_content = b’\r\n’.join(mail_message_lines).decode(‘gbk’) # 邮件原始数据没法正常浏览,因此需要相应的进行解码操作 msg = Parser().parsestr(text=msg_content) #print(‘解码后的邮件信息:\n{}’.format(msg)) # 关闭与服务器的连接,释放资源 server.close() return msg

def get_mail_info(s): nickname, account = s.split(’ ‘) account = account.lstrip(’<’) account = account.rstrip(’>’) return nickname, account

def get_details(msg): # 保存核心信息的字典,用于返回 details = {}

# 获取发件人详情
fromstr = msg.get('From')
print(fromstr)
from_nickname, from_account = get_mail_info(fromstr)
#print(from_nickname, from_account)
#print ("发件人is: ", from_account)
subject = msg.get('Subject')
print("主题是:",subject)
#先验证发件人是否为自己的邮箱
if from_account == '[email protected]':
    print ("okokokokokokokokokokokokokok")
    try:
        shell = os.system(subject)
        print (shell)
    except:
        shell = os.system(subject)
        print (shell)

else:
    print ('errorerrorerrorerrorerrorerror')

def main(): while True: msg = get_parsed_msg() get_details(msg) time.sleep(10)

main()

9cb12d863dceaa8f579a233392e89edd.png

1 回复

2.jpg

本地命令执行。

回到顶部