IMAP 邮件管理库

版本 v2.4 2026-08-01 光庆 · chengxu.online
稳定 · 生产就绪

基于 Go 封装的高性能 IMAP 客户端,支持 TLS、代理、流式解析,专为邮件批量处理与安全通信设计。

当前版本
v2.4
最后更新 2026-08-01 · 流程优化
安全特性
TLS 1.2+
S5代理 · 超时控制 · 授权码登录
核心能力
邮件管理
列表 · 信息 · 附件 · 删除 · 已读状态
附加特性
ID标识
兼容网易等强制上报服务器
功能特性
核心优点
高安全性 高性能 Go 底层 资源可控 简洁 API 生产级容错
API 快速索引
login()登录邮箱,返回 bool + 错误
logout()退出登录,释放会话
close()关闭管理器,释放资源
setID()设置客户端名称/版本 (网易强制)
getDirList()获取所有文件夹名称数组
selectDir()打开文件夹,返回邮件总数
getMailList()按条件搜索邮件 UID 列表
getMailInfo()获取邮件完整信息 (含附件)
delMail()删除指定 UID 邮件
setReadState()标记已读 / 未读
setMaxAttachSize()调整附件下载大小限制
典型用法
// 创建客户端 (SSL + 代理) imap = godking.imap("imap.example.com", 993, true, "user@domain", "授权码", "socks5://127.0.0.1:1080", 30); if (!imap) { console.log("连接失败"); return; } // 设置客户端ID (网易等强制) imap.setID("MyMailClient", "1.0.0"); // 获取文件夹列表 folders = imap.getDirList(120); imap.selectDir("INBOX"); // 获取最近 10 封未读邮件 (按日期过滤) uids = imap.getMailList(1, 10, 0, "2026-07-01", "", ""); // 遍历邮件 (只取头部, 不下载附件) for (id in uids) { mail = imap.getMailInfo(id, false, false); console.log(mail.Subject, mail.From[0].Name); } // 关闭 imap.close();
版本演进

特别提醒: 网易 163/188 等服务器强制要求登录后调用 setID(),否则 selectDir() 会抛出 “SELECT Unsafe Login”。 另外 getMailInfo()loadAttach 参数建议按需开启,大附件场景使用 false 仅获取元数据,避免内存压力。