Skip to content

Saquict/AER

Repository files navigation

邮箱AI自动回复工具

这是一个自动读取邮箱新邮件,并通过Ollama AI模型生成回复内容,然后自动发送回复给发件人的工具。支持163邮箱、QQ邮箱等主流邮箱。

功能特点

  • 自动检测邮箱中的新邮件(支持163邮箱、QQ邮箱等)
  • 通过Ollama API调用AI模型(默认使用gemma3:1b)生成智能回复
  • 自动发送回复邮件给发件人
  • 记录已处理的邮件,避免重复回复
  • 支持配置检查频率、回复前缀等参数

环境要求

  • Python 3.6 或更高版本
  • 安装必要的依赖包:requests
  • Ollama服务正在本地运行(默认地址:http://localhost:11434)
  • 已安装gemma3:1b模型(或修改配置使用其他模型)

安装与配置

  1. 确保已安装Python和Ollama

  2. 下载本工具的所有文件到本地

  3. 编辑配置文件 config.json,设置以下信息:

    对于163邮箱,配置如下:

    {
        "email_config": {
            "email": "your_email@163.com",  // 你的邮箱地址(163邮箱)
            "password": "your_password_or_app_password",  // 163邮箱密码或授权码
            "imap_server": "imap.163.com",
            "smtp_server": "smtp.163.com",
            "imap_port": 993,
            "smtp_port": 465
        },
        "ai_config": {
            "use_ai_reply": true,
            "model": "gemma3:1b",  // 使用的AI模型
            "api_url": "http://localhost:11434/api/generate",  // Ollama API地址
            "system_prompt": "你是一个专业的邮件回复助手,请根据收到的邮件内容生成恰当的回复...",
            "temperature": 0.7
        },
        "reply_config": {
            "reply_subject_prefix": "Re: ",
            "check_interval": 300,  // 检查间隔(秒)
            "processed_emails_file": "processed_emails.txt"
        }
    }

    对于QQ邮箱,配置如下:

    {
        "email_config": {
            "email": "your_qq_email@qq.com",  // 你的QQ邮箱
            "password": "your_imap_password",  // QQ邮箱IMAP授权码
            "imap_server": "imap.qq.com",
            "smtp_server": "smtp.qq.com",
            "imap_port": 993,
            "smtp_port": 465
        },
        "ai_config": {
            "use_ai_reply": true,
            "model": "gemma3:1b",  // 使用的AI模型
            "api_url": "http://localhost:11434/api/generate",  // Ollama API地址
            "system_prompt": "你是一个专业的邮件回复助手,请根据收到的邮件内容生成恰当的回复...",
            "temperature": 0.7
        },
        "reply_config": {
            "reply_subject_prefix": "Re: ",
            "check_interval": 300,  // 检查间隔(秒)
            "processed_emails_file": "processed_emails.txt"
        }
    }

如何获取邮箱授权码

对于QQ邮箱:

  1. 登录QQ邮箱网页版
  2. 点击顶部的"设置"按钮
  3. 选择"账户"标签
  4. 找到"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"部分
  5. 开启"IMAP/SMTP服务"
  6. 按照提示获取授权码
  7. 将获取的授权码填入配置文件中的password字段

对于163邮箱:

  1. 登录163邮箱网页版:使用您的163邮箱账号和密码登录网页版邮箱。
  2. 进入设置页面:点击顶部导航栏中的"设置"按钮。
  3. 选择POP3/SMTP/IMAP设置:在设置页面中,选择"POP3/SMTP/IMAP"选项卡。
  4. 开启IMAP/SMTP服务:找到并开启"IMAP/SMTP服务"选项。
  5. 设置/获取授权码
    • 首次开启服务时,系统会提示设置授权码
    • 授权码不是邮箱登录密码,而是专门用于第三方客户端的密码
    • 请妥善保存生成的授权码,因为它只会显示一次
  6. 配置授权码:将生成的授权码填入config.json文件中的password字段

重要提示

  • 163邮箱有严格的安全限制,必须使用授权码而不是登录密码
  • 如果遇到"Unsafe Login"错误,请确认:
    • 已正确开启IMAP/SMTP服务
    • 正在使用正确的授权码(不是邮箱密码)
    • 授权码没有包含空格或特殊字符
    • 可能需要在网页版邮箱中进行安全验证,然后再尝试

使用方法

方法一:双击运行批处理文件

直接双击 run_auto_reply.bat 文件,程序会自动检查依赖并启动。

方法二:命令行运行

  1. 打开命令提示符(CMD)
  2. 切换到程序所在目录
  3. 运行命令:python qq_email_ai_reply.py

运行过程

程序启动后会:

  1. 加载配置文件
  2. 检查已处理的邮件记录
  3. 每间隔一段时间(默认300秒)检查一次邮箱中的新邮件
  4. 对每封新邮件:
    • 提取邮件内容
    • 通过AI生成回复
    • 发送回复给发件人
    • 标记邮件为已处理和已读

注意事项

  1. 请确保Ollama服务正在运行,并且已安装所需的AI模型
  2. 请正确配置QQ邮箱的IMAP授权码,不是登录密码
  3. 程序运行时需要保持网络连接
  4. 如需修改AI模型,确保在Ollama中已安装该模型
  5. 处理的邮件ID会保存在processed_emails.txt文件中,避免重复回复

日志

程序会生成email_ai_reply.log日志文件,记录运行状态和错误信息,方便排查问题。

常见问题

Q: 程序无法连接到QQ邮箱

A: 请检查邮箱地址和授权码是否正确,以及是否已开启IMAP服务

Q: AI回复失败

A: 请检查Ollama服务是否运行,以及API地址和模型名称是否正确

Q: 邮件回复内容不符合预期

A: 可以修改配置文件中的system_prompt来自定义AI的回复风格

许可证

本项目仅供个人学习和使用。

About

An automatic email response program

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors