Skip to content

konbluesky/CodeInbox

Repository files navigation

CodeInbox

一个轻量、跨平台的桌面邮箱收件助手,支持验证码快速查找、按账号/主题/发件人/验证码搜索、批量导入账号、代理访问、手动与全量刷新、标记已读、分页浏览等特性。UI 基于 Qt(PySide6),后端采用子进程隔离 IMAP 网络/SSL,降低 UI 卡顿。

GitHub: konbluesky/CodeInbox

环境要求

  • Python 3.10+

功能特性

  • 账号管理
    • 启动时选择 accounts.csv;工具栏支持“切换账号文件…”。
    • 导入对话框:粘贴纯文本或“从文件…”一键导入,支持分隔符、列序、默认 host、批次保存为 account-时间-批次.csv;导入页带分页预览。
  • 拉取与刷新
    • 默认不自动拉取(可在 config.json 里开启 auto_start_poll)。
    • “刷新”:仅拉取未读(UNSEEN),对当前或全部账号;拉取完成心跳后自动从 DB 重载列表。
    • “全部拉取”:进行 ALL 全量扫描,修复“服务器邮件曾被漏拉”的场景。
    • 支持仅监控当前账号(默认勾选,避免账号多时全部轮询)。
  • 搜索与列表
    • 顶部搜索框同时匹配 账号/主题/发件人/验证码。
    • 账号选择为可编辑下拉,支持“任意相邻/不相邻字符”的子序列匹配补全(例如输入 jd 可匹配 john.doe@…)。
    • 列表分页与每页条数设置,状态栏显示当前进度;复制验证码、双击查看详情并本地标记已读。
  • 代理与日志
    • 代理:支持 socks5/socks4/http,UI 可配置启用与认证。状态栏显示“代理与连接耗时(ms)”。
    • 日志:内置滚动日志文件与控制台输出(可在 config.json 设置 log_level)。
  • 稳定性
    • 子进程执行密集 IMAP 操作,后台线程节流进度事件;批量追加新邮件,减少 UI 事件压力。

目录结构

  • qt_client.py:Qt 前端应用与交互逻辑
  • email_worker.py:后台轮询/刷新线程与信号
  • net_imap.py:子进程 IMAP 抓取实现
  • db.py:SQLite 本地缓存(邮件、账号)
  • config.py:配置、日志初始化
  • accounts.csv:默认账号文件(username,password,host)
  • config.json:运行配置

安装与运行

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python3 qt_client.py

首次启动会弹出“选择账号CSV”。如取消,将使用默认 accounts.csv

accounts.csv 示例

  • host可以不填,默认会使用@后面的host,如:adf@example.com,那么host就是example.com
  • 如填写host,且不是使用的stmp和pop3,需要使用加密传输,请使用imap
username,password,host
test@test.com,test123,imap.test.com
test2@test.com,test123,imap.test.com
test3@test.com,test123,imap.test.com
test4@test.com,test123,imap.test.com
test5@test.com,test123,imap.test.com
test6@test.com,test123,imap.test.com
test7@test.com,test123,imap.test.com
test8@test.com,test123,imap.test.com
test9@test.com,test123,imap.test.com
test10@test.com,test123,imap.test.com

配置项(config.json)

  • 轮询与拉取
    • auto_start_poll:是否开机自动开始后台拉取(默认 false)
    • poll_interval_sec:后台轮询间隔
    • initial_fetch_mode / initial_fetch_limit / initial_fetch_on_empty_only
  • 验证码提取
    • code_patterns:正则数组,可在“配置…”直接编辑
  • 代理
    • proxy.enabledproxy.type(socks5/socks4/http)、proxy.hostproxy.portproxy.usernameproxy.password
  • 日志
    • log_levellog_to_consolelog_filelog_max_byteslog_backup_count

使用说明

  • 刷新
    • 选择账号(或“全部账号”)后,点击“刷新”以未读模式同步;完成后心跳会触发从 DB 重载。
  • 全部拉取(ALL)
    • 点击“全部拉取”,将对当前或全部账号进行全量扫描,适用于需要补拉旧邮件的场景。
  • 标记已读
    • “全部标记已读”对当前或全部账号生效;本地样式即时变为“非加粗/灰色”。
  • 导入账号
    • 工具栏“导入…”:支持分隔符、列序(邮箱/密码 1 基索引)、默认 host 与批次保存;下方表格分页预览导入结果。
  • 切换账号文件
    • 工具栏“切换账号文件…”:选择新的 accounts.csv 并立即应用。

打包

macOS (app 捆绑)

pyinstaller --noconfirm \
  --name CodeInbox \
  --windowed \
  --icon app.png \
  --add-data "accounts.csv:." \
  --add-data "config.json:." \
  qt_client.py

生成 dist/CodeInbox.app

Windows

pyinstaller --noconfirm `
  --name CodeInbox `
  --windowed `
  --icon app.png `
  --add-data "accounts.csv;." `
  --add-data "config.json;." `
  qt_client.py

生成 dist/CodeInbox/CodeInbox.exe

贡献

欢迎到 GitHub 提交 Issue/PR:konbluesky/CodeInbox

About

Batch Email Verification Code Management Tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages