教程摘要

本教程教你如何使用 Python 编写一个后台程序。核心逻辑是利用 Python 的扩展库调用摄像头进行拍摄,并配置 SMTP 协议将图片作为附件自动发送到指定邮箱。这能帮你监控电脑在你离开时是否被他人擅自开机使用。

操作步骤

  1. 环境准备

    • 安装 Python 环境。
    • 安装所需库,终端运行:pip install pillow
    • 开启邮箱的 POP3/SMTP 服务(以 QQ 邮箱为例),获取授权码。
  2. 编写代码 (main.py)

    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    from PIL import Image
    import time
    
    def take_photo():
       # 调用摄像头拍照
       cap = Image.open(0) 
       filename = f"capture_{int(time.time())}.jpg"
       cap.save(filename)
       return filename
    
    def send_email(image_file):
       # 邮箱配置
       sender = '你的邮箱@qq.com'
       receiver = '接收邮箱@qq.com'
       smtp_server = 'smtp.qq.com'
       password = '你的SMTP授权码' # 不是登录密码
    
       msg = MIMEMultipart()
       msg['Subject'] = '电脑已开机,请查收截图'
       msg.attach(MIMEText('有人动了你的电脑...', 'plain'))
    
       with open(image_file, 'rb') as f:
           img_data = f.read()
       image = MIMEImage(img_data)
       image.add_header('Content-ID', '<image1>')
       msg.attach(image)
    
       try:
           server = smtplib.SMTP_SSL(smtp_server, 465)
           server.login(sender, password)
           server.sendmail(sender, receiver, msg.as_string())
           server.quit()
           print("邮件发送成功")
       except Exception as e:
           print(f"发送失败: {e}")
    
    if __name__ == "__main__":
       photo = take_photo()
       send_email(photo)
  3. 设置开机自启

    • Windows:将脚本编译成 .exe 或创建快捷方式,放入「启动」文件夹(Win+R 输入 shell:startup)。
    • 或使用「任务计划程序」设置触发器为「计算机启动时」。

常见问题

  • Q:为什么没收到邮件?
    A:检查是否开启了邮箱的 SMTP 服务并正确填写了「授权码」(不是登录密码);检查网络连接。
  • Q:程序报错找不到摄像头?
    A:确保摄像头未被其他软件占用,或检查 Image.open(0) 是否能识别你的设备索引。
  • Q:如何隐藏黑框不被发现?
    A:可以修改后缀名为 .pyw 运行,或者使用 pyinstaller -wF main.py 封装为无窗口程序。

下载地址

点击下载

软件截图

电脑开机自动拍照发邮件 python教程 第5张插图