用Python开启摄像头截屏后回传到指定邮箱!

简介: 用Python开启摄像头截屏后回传到指定邮箱!
今天二哥突发奇想,想尝试使用Python来调用摄像头自拍并截屏回传到邮箱中保存,来记录下自己工作的桌面和工作的状态,本文我们一起来了解一下。
老规矩!先点个赞吧......

一、开启摄像头

使用cv2(opencv)可以很轻松的达到开启摄像头的效果,开启摄像头的代码如下所示:

import cv2

# 参数0表示内置摄像头,1表示其他
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
# 开启摄像头
cv2.imshow('cv window', frame)
# 持续一段时间(可以增大)
cv2.waitKey(1000)
cap.release()
cv2.destroyAllWindows()
# 防止窗口卡死
cv2.waitKey(1)

二、截取屏幕

开启了摄像头之后,我们可以使用pyautogui来快速的对屏幕进行截屏。
截屏代码如下所示:

import pyautogui

# 截取屏幕
img = pyautogui.screenshot()
img.save('screenshot.png')

三、发送邮件

在email库中提供了发送带图片邮件的方法,发送邮件的代码如下:

# 用于构造带图片的邮件
from email.mime.multipart import MIMEMultipart
# 用于封装附件
from email.mime.application import MIMEApplication
import smtplib

# 给定发送者邮箱
from_addr = 'your_email@xxx.com'
# 给定发送者密码
password = 'your_password'
# 给定SMTP服务器地址
smtp_server = 'your_server'
# 给定收件人地址
to_addr = 'send_email@xxx.com'

msg = MIMEMultipart()
part = MIMEApplication(open('screenshot.png', 'rb').read())
msg.attach(part)

server = smtplib.SMTP(smtp_server, 25)  # SMTP协议默认端口是25
# server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())

server.quit()

这里我们需要填入邮箱的账号、密码、服务器地址、发送账号四种信息,对于账号来说,我们填入普通的邮箱即可,而这里的密码不是我们注册时用的密码,而是一个独立的从服务器发送所需的密码,这里以qq为例,看一下如何获取密码。

  • 如图所示先点击设置,再点击账户。

在这里插入图片描述

  • 下拉找到服务器选项,开启第一个选项即可。

在这里插入图片描述开启后即可获取到密码了。
对于STMP服务器地址,我们使用的哪个邮箱就查找哪个邮箱的地址即可,例如QQ邮箱地址:smtp.qq.com

注意,邮箱收到的照片需要将后缀改成.png、.jpg等图像格式。

四、打包程序

我们可以使用pyinstaller脚本来将代码打包成exe文件,注意需要使用win系统,打包方式如下:

  1. 安装pyinstaller:pip install pyinstaller
  2. 进入程序所在目录
  3. 使用命令打包文件:pyinstaller -F xxx.py(xxx.py,打包的文件)
  4. 去新生成的dist文件夹下找到exe文件

打包完成之后,点击运行就可以了。
完整的代码如下所示:

import cv2
import pyautogui
# 用于构造带图片的邮件
from email.mime.multipart import MIMEMultipart
# 用于封装附件
from email.mime.application import MIMEApplication
import smtplib

cap = cv2.VideoCapture(0)


ret, frame = cap.read()
cv2.imshow('cv window', frame)
    # 按q退出程序
cv2.waitKey(1000)
# 截取屏幕
img = pyautogui.screenshot()
img.save('screenshot.png')
cap.release()
cv2.destroyAllWindows()
# 防止窗口卡死
cv2.waitKey(1)

# 给定发送者邮箱
from_addr = 'your_email@xxx.com'
# 给定发送者密码
password = 'your_password'
# 给定SMTP服务器地址
smtp_server = 'your_server'
# 给定收件人地址
to_addr = 'send_email@xxx.com'

msg = MIMEMultipart()
part = MIMEApplication(open('screenshot.png', 'rb').read())
msg.attach(part)

server = smtplib.SMTP(smtp_server, 25)  # SMTP协议默认端口是25
# server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())

server.quit()
❤️创作不易,点个赞吧❤️
相关文章
|
3月前
|
存储 安全 Linux
|
4月前
|
编解码 Linux 计算机视觉
python 调用ffmpeg使用usb摄像头录制视频,输出h264格式,自动获取摄像头的最佳帧率和最大画面尺寸
使用 Python 调用 FFmpeg 进行 USB 摄像头视频录制,需先确保安装 FFmpeg 和 Python 的 `subprocess` 模块。代码示例展示了如何自动获取摄像头的最佳帧率和最大分辨率,然后录制视频。首先通过 FFmpeg 列出摄像头格式获取信息,解析出帧率和分辨率,选择最优值。之后调用 FFmpeg 命令录制视频,设置帧率、分辨率等参数。注意 `/dev/video0` 是 Linux 的摄像头设备路径,Windows 系统需相应调整。代码中未直接实现自动获取最佳参数,通常需要借助其他库如 OpenCV。
|
4月前
|
Windows Python
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
|
4月前
|
计算机视觉 索引 Python
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
|
5月前
|
API Python
Python邮箱API发送邮件的方法和步骤
使用Python发送邮件涉及导入smtplib和email模块,设置发件人、收件人、主题和内容,然后连接SMTP服务器(如示例中的smtp.example.com)并使用SMTP方法发送。完整代码示例包括异常处理,确保邮件发送成功或提供错误信息。通过这种方式,可以实现Python的自动化邮件发送功能。
|
5月前
|
API Python
做一个合格的男友,用python制作每天定时给女朋友发送邮箱问候
做一个合格的男友,用python制作每天定时给女朋友发送邮箱问候
|
5月前
|
存储 安全 计算机视觉
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
|
5月前
|
存储 编解码 算法
使用Python和OpenCV构建具有人体检测功能的摄像头录制器
使用Python和OpenCV构建具有人体检测功能的摄像头录制器
|
5月前
|
Python
【代码】利用Python每天自动发新闻到邮箱
【代码】利用Python每天自动发新闻到邮箱
43 0
|
5月前
|
存储 安全 网络安全
python自动化操作邮箱
python自动化操作邮箱
126 0
下一篇
无影云桌面