首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【python实现向日葵控制软件功能】手机远程控制电脑

【python实现向日葵控制软件功能】手机远程控制电脑

作者头像
淼学派对
发布2023-10-14 11:19:06
发布2023-10-14 11:19:06
6600
举报
文章被收录于专栏:云开发小程序1云开发小程序1

写在前面

本篇博客实现的功能是基于python来完成的自动收发邮件从而实现手机远程控制电脑的功能。

这里我参考了【向日葵控制软件】的控制功能,并结合了python与pOp3协议从而根据自己设置的关键字来判断手机端发送过来的邮件信息,从而完成对PC端的远程控制。

代码剖析

首先引入本程序用到的库

代码语言:javascript
复制
import os
import time
import poplib
import email
from email.header import decode_header

创建用户交互,让其输入自己的邮箱账号和密码

代码语言:javascript
复制
name = input('请输入你的163网易邮箱用户名(或手机号):')# 读取Email,获取Email主题
password = input('请输入你的163网易客户端授权密码:')

创建函数

代码语言:javascript
复制
def getEmailSubject():

调用poplib库使用POP3协议

代码语言:javascript
复制
read = poplib.POP3('pop.163.com')

读取用户名和密码

代码语言:javascript
复制
read.user(name)# 163邮箱用户名
read.pass_(password)       # 163邮箱设置中的客户端授权密码

读取邮件信息

代码语言:javascript
复制
allEmails = read.stat() # 读取邮件信息

自动获取最新一条信息数据

代码语言:javascript
复制
topEmail = read.top(allEmails[0], 0) # 获取最新的一封邮件

创建数组,并解码邮件数据存入数组中

代码语言:javascript
复制
tmp = []
    # 解码邮件,存入tmp
    for s in topEmail[1]:
        try:
            tmp.append(s.decode())
        except:
            try:
                tmp.append(s.decode('gbk'))
            except:
                tmp.append(s.decode('big5'))
    message = email.message_from_string('\n'.join(tmp))

获取邮件主题

代码语言:javascript
复制
subject = decode_header(message['Subject'])
    if subject[0][1]:
        subjectDecode = subject[0][0].decode(subject[0][1])
    else:
        subjectDecode = subject[0][0]
    return subjectDecode

创建函数def checkEmailSubject(),并检测邮件的主题

代码语言:javascript
复制
    while True:
        subject = getEmailSubject()
        print('代码运行中........')
        print('代码正在运行中,请勿关闭!' + subject)

设置判断条件

代码语言:javascript
复制
        if subject == '重启':
            os.system('shutdown -r -t 3')
            break
        if subject == '关机':
            os.system('shutdown -s -t 3')
            break

设置检测时间

代码语言:javascript
复制
time.sleep(60) #每1分钟自动检测一次

最后执行

代码语言:javascript
复制
if __name__ == '__main__':
    checkEmailSubject()

全部代码提供

代码语言:javascript
复制
import os
import time
import poplib
import email
from email.header import decode_header
name = input('请输入你的163网易邮箱用户名(或手机号):')# 读取Email,获取Email主题
password = input('请输入你的163网易客户端授权密码:')
def getEmailSubject():
    read = poplib.POP3('pop.163.com')
    read.user(name)# 163邮箱用户名
    read.pass_(password)       # 163邮箱设置中的客户端授权密码
    allEmails = read.stat() # 读取邮件信息
    topEmail = read.top(allEmails[0], 0) # 获取最新的一封邮件
    tmp = []
    # 解码邮件,存入tmp
    for s in topEmail[1]:
        try:
            tmp.append(s.decode())
        except:
            try:
                tmp.append(s.decode('gbk'))
            except:
                tmp.append(s.decode('big5'))
    message = email.message_from_string('\n'.join(tmp))
    # 获取邮件主题
    subject = decode_header(message['Subject'])
    if subject[0][1]:
        subjectDecode = subject[0][0].decode(subject[0][1])
    else:
        subjectDecode = subject[0][0]
    return subjectDecode
def checkEmailSubject():# 检查Email的主题
    while True:
        subject = getEmailSubject()
        print('代码运行中........')
        print('代码正在运行中,请勿关闭!' + subject)
        if subject == '重启':
            os.system('shutdown -r -t 3')
            break
        if subject == '关机':
            os.system('shutdown -s -t 3')
            break
        time.sleep(60) #每1分钟自动检测一次

if __name__ == '__main__':
    checkEmailSubject()

写在最后

源码出自本人亲手,创作不易,各位朋友可否“点赞+收藏+评论”支持一下,非常感谢!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 代码剖析
    • 首先引入本程序用到的库
    • 创建用户交互,让其输入自己的邮箱账号和密码
    • 创建函数
    • 调用poplib库使用POP3协议
    • 读取用户名和密码
    • 读取邮件信息
    • 自动获取最新一条信息数据
    • 创建数组,并解码邮件数据存入数组中
    • 获取邮件主题
    • 创建函数def checkEmailSubject(),并检测邮件的主题
    • 设置判断条件
    • 设置检测时间
    • 最后执行
  • 全部代码提供
  • 写在最后
    • 源码出自本人亲手,创作不易,各位朋友可否“点赞+收藏+评论”支持一下,非常感谢!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档