python实现收发QQ邮件及远程操控电脑

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/shuryuu/article/details/86308147

    之前研究了一下通过itchat控制电脑的浏览器及其他操作,但是每次都需要扫码登录,就很是麻烦,于是呢,我一直有考虑想一种其他方法代替,现在可以通过邮件发送电脑或者浏览器的截图,然后也可以发邮件给固定的账号,实现远程操控电脑。

发邮件的代码如下,开发版本为py3.6:

def email():
    sender = '[email protected]'#发送方
    receivers = '[email protected]'#接收方
    message = MIMEMultipart('related')
    subject = '结果反馈'#主题
    message['Subject'] = subject
    message['From'] = sender
    message['To'] = receivers
    content = MIMEText('<html><body><img src="cid:imageid" alt="imageid"></body></html>', 'html', 'utf-8')
    message.attach(content)

    file = open("D:\yzm\jieguo.png", "rb")#想要发送的图片路径
    img_data = file.read()
    file.close()

    img = MIMEImage(img_data)
    img.add_header('Content-ID', 'imageid')
    message.attach(img)

    try:
        server = smtplib.SMTP_SSL("smtp.qq.com", 465)
        server.login(sender, "*************")#星号为邮箱设置里面获取的授权码
        server.sendmail(sender, receivers, message.as_string())
        server.quit()
        print("邮件发送成功")
    except smtplib.SMTPException as e:
        print(e)

其中授权码获取方式如下:

打开邮箱点击设置,然后账户那一页就有。

然后呢,这是接收邮件的代码:

# 此函数通过使用poplib实现接收邮件
def recv_email_by_pop3():
    # 要进行邮件接收的邮箱。改成自己的邮箱
    email_address = "[email protected]"
    # 要进行邮件接收的邮箱的密码。改成自己的邮箱的密码
    email_password = "************"#对应的是授权码
    # 邮箱对应的pop服务器,也可以直接是IP地址
    # 改成自己邮箱的pop服务器;qq邮箱不需要修改此值
    pop_server_host = "pop.qq.com"
    # 邮箱对应的pop服务器的监听端口。改成自己邮箱的pop服务器的端口;qq邮箱不需要修改此值
    pop_server_port = 995
    # 连接pop服务器。如果没有使用SSL,将POP3_SSL()改成POP3()即可其他都不需要做改动
    email_server = poplib.POP3_SSL(host=pop_server_host, port=pop_server_port, timeout=10)
    # 验证邮箱是否存在
    email_server.user(email_address)
    # 验证邮箱密码是否正确
    email_server.pass_(email_password)

    # 邮箱中其收到的邮件的数量
    email_count = len(email_server.list()[1])
    # 通过retr(index)读取第index封邮件的内容;这里读取最后一封,也即最新收到的那一封邮件
    resp, lines, octets = email_server.retr(email_count)
    # lines是邮件内容,列表形式使用join拼成一个byte变量
    # 关闭连接
    email_server.close()
    email_content = b'\r\n'.join(lines)
    # 再将邮件内容由byte转成str类型
    email_content = email_content.decode()
    result = re.findall("Subject: (.*)",email_content)[0][0:]
    # time1 = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
    # biaoshi = str(time1)+ result
    # print(biaoshi)
    return int(result)

可以通过写一个循环,然后加上sleep实现监控邮件内容的操作,然后写判断,当邮件主题为某个关键字的时候,发起某种操作,比如打开一个浏览器或者发送一张截图之类的操作。

猜你喜欢

转载自blog.csdn.net/shuryuu/article/details/86308147