首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实现键盘侦听以及结果邮件发送

本文将基于三个Python模块实现电脑键盘的侦听以及将侦听结果发送到指定邮箱。本文内容仅用于学习交流。

键盘监听

pynput库为Python的第三方库,需要通过pip install pynput来安装,这个库的功能是用来控制、监视电脑的键盘鼠标,本文我们主要用到其监视键盘的功能。

使用pynput的监视键盘功能代码如下:

from pynput.keyboard import Key, Listener

def on_press(key):

print(' pressed'.format(key))

def on_release(key):

print(' release'.format(key))

if key == Key.esc:

# Stop listener

return False

# Collect events until released

with Listener(on_press=on_press,on_release=on_release) as listener:

listener.join()

这里定义了两个函数,分别用来显示按下或者释放了哪个按键。当我们选择用按下按键或则释放按键的方式监视键盘,我们可以使用Listener的on_press或者on_release回调。如果返回的键是“esc”则退出监听。

本文我们选择键在按下时调用回调,即在按下按键时返回按键的值,并且我们定义on_press函数不在是打印输出,而是将按键的值保存到文件中,在按下的键为“esc”时结束监听:

基于此我们就实现了键盘按键的监听以及记录。

邮件发送

在监听内容的文件保存之后,我们来实现将其内容自动发送到指定邮箱。使用Python来发送邮件需要用到两个库——smtplib库以及email库

SMTP(Simple Mail Transfer Protocol)是简单邮件协议的简称,它规定了从源地址到目标地址传送邮件的规则。SMTP协议只能用来发送邮件而不能接收邮件,它工作在两种情况下:邮件从客户机发送到某个服务器;邮件从一个服务器发送到另外一个服务器。Python的smtplib模块对SMTP进行了封装,实例化之后能够很方便的实现发送邮件。以下为最后邮件发送的代码实现:

在邮件发送之前,我们需要配置好相关内容,比如邮件的正文、发送方、发送方的账号密码、接收方、邮件主题以及附件等。

由于我们上部分已经实现了键盘监听信息记录,我们需要将记录的信息以邮件的形式发送,所以我们发送的邮件信息内容有正文、发件人、收件人、主题以及附件,在email模块中可以实例化一个根容器来存储以上信息。

接下来我们要将正文内容、收发人账户、主题以及附件等信息添加到msg这个根容器中:

由于我们已经知道了键盘监听信息是以纯文本的文件.txt存储的,所以在构造附件的代码中,我们直接以默认的只读方式打开该文件,用“plain”参数设置为文本格式,用“utf-8”作为编码格式以正确显示中文字符。Content-Type用于指定文件的类型,除了图中的text/plain纯文本类型,还有vedio/avi、image/jpeg等文件类型。当我们需要发送不知道文件类型的文件时,我们可以以二进制的形式读取文件,因为文件都是以二进制存储的,这时候就需要指明读取方式,特定的格式以及conten-type要指定为“application/octet-stream”。“application/octet-stream”表示二进制流。

邮件信息配置完成之后,就可以进行邮件发送了,也就是该部分刚开始的代码内容。

全部代码实现

小结

本文结合使用三个库来实现电脑键盘的监控记录以及邮件发送,虽然功能比较底端,但是仍要声明有兴趣获取源码的看官,只用于学习交流,切勿用作做其他用途。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180714G18MOR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券