📊 总账号数
{{ stats.total || 0 }}
✅ 正常
{{ (stats.by_status||{})['正常'] || 0 }}
❌ 异常
{{ (stats.by_status||{})['异常'] || 0 }}
⏳ 未检测
{{ (stats.by_status||{})['未检测'] || 0 }}
📁 分组统计
{{ row.name }}
🔍
🔄 刷新
📥 批量导入
🗑️ 批量删除
📋 批量复制
⬇️ 下载账号
正常账号(排除刷新失败)
全部账号
当前分组「{{ filterGroup }}」
📁 移动分组
{{ g.name }}
正在删除...
{{ deleteProgress }} / {{ deleteTotal }}
{{ row.is_starred ? '⭐' : '☆' }}
{{ row.email }}
{{ row._showPwd ? row._pwd : '••••••' }}
{{ row.status }}
{{ row.auxiliary_email }}
未设置
{{ row.type }}
查看邮件
复制邮箱
复制要素
复制API
删除
📮
🔍 查询
📋 复制API
快捷域名:
@{{d}}
查看
🎲 换一个
📋 复制
📧 查看邮件
点击「换一个」获取随机邮箱
📊 池总数
{{ randInfo.total || 0 }}
📦 剩余
{{ randInfo.remaining || 0 }}
⏱ 刷新倒计时
{{ randInfo.refresh_in || 0 }}s
🔹 每次调用返回不同邮箱,用完自动重新洗牌
🔹 池每 300 秒自动刷新
🔹 公开 API:GET /api/random-email?domain=outlook
🔄 刷新
🔗 新窗口打开
免注册,访问即分配邮箱,单会话最多5个邮箱
步骤1:点击按钮打开微软登录页面,输入邮箱密码完成登录。
步骤2:登录成功后,浏览器会跳转到一个空白页面,复制该页面的完整地址栏URL粘贴到下方输入框。
系统将自动从URL中提取授权码并换取 refresh_token 和 access_token。
- Secure Connection Failed — 代理SSL不兼容,换一个代理IP
- Please try again(人机验证失败)— UA或IP被标记,换浏览器/代理
- We can't create your account — 账号IP异常,换干净的住宅IP
- 空白页无code参数 — 登录未完成或被拦截,重试
🔑 步骤1:打开微软登录
换取令牌
授权结果
{{ oauthResult.email || '-' }}
{{ oauthResult.name || '-' }}
{{ oauthResult.expires_in }}s
复制 refresh_token
复制 access_token
复制四要素
导入到系统
复制 JSON
📊 数据库总账号
{{ refreshStatus.total || stats.total || 0 }}
✅ 上次成功
{{ refreshStatus.success || 0 }}
❌ 上次失败
{{ refreshStatus.fail || 0 }}
� 已移动
{{ refreshStatus.moved || 0 }}
天
保存
{{ refreshStatus.last_run ? new Date(refreshStatus.last_run).toLocaleString() : '从未执行' }}
{{ refreshStatus.next_run ? new Date(refreshStatus.next_run).toLocaleString() : '首次刷新后自动计算' }}
{{ refreshStatus.last_result || '-' }}
刷新中 {{ refreshStatus.progress }}% ({{ refreshStatus.current }}/{{ refreshStatus.total }})
空闲
🔄 开始刷新(失败移到「刷新失败」分组)
🔄 仅刷新(不移动失败)
📊 刷新状态
🗑️ 一键清理「刷新失败」账号
🔹 刷新所有数据库中有 refresh_token 的账号(约12000+个)
🔹 成功:自动更新新的 refresh_token 到数据库
🔹 失败(白号/锁定/过期):备份到 logs/token_backup/ 并移到「刷新失败」分组
🔹 自动刷新:每30天执行一次,防止令牌过期
🔹 预计耗时:{{ Math.ceil((refreshStatus.total || stats.total || 12000) * 0.3 / 60) }} 分钟
发送验证码
{{ verifySendResult.message || verifySendResult.error }}
批量发送
≈ {{ batchRateLabel }}
开始批量发送
取消任务
清空结果
状态:{{ batchStatusLabel }}
总数:{{ batchTask.total }}
成功:{{ batchTask.sent }}
失败:{{ batchTask.failed }}
未处理:{{ batchTask.total - batchTask.sent - batchTask.failed }}
并发:{{ batchTask.max_concurrency }}
成功
失败
发件人: {{ row.sender }}
{{ row.error }}
验证验证码
{{ verifyCheckResult.message }}
服务状态
{{ verifyStatus.accounts_available }}
可用发件账号
{{ verifyStatus.accounts_suspended }}
已挂起账号
{{ verifyStatus.stats?.sent || 0 }}
已发送
{{ verifyStatus.stats?.verified || 0 }}
已验证
邮件模板编辑
可用变量:{code}(验证码)、{scene_name}(场景名)、{expire_min}(过期分钟数)
保存模板
预览效果
重置默认
预览标题:{{ tplPreviewSubject }}
API 接入文档
发送验证码
POST /api/verify/send-code
Body: {"email": "user@xxx.com", "scene_name": "注册验证"}
Response: {"success": true, "expire": 300}
验证验证码
POST /api/verify/verify-code
Body: {"email": "user@xxx.com", "code": "123456"}
Response: {"success": true, "message": "验证成功"}
批量发送验证码(异步)
POST /api/verify/send-batch
Body: {"emails": ["a@x.com","b@x.com"], "scene_name": "邮箱验证", "interval_sec": 1}
Response: {"success": true, "task_id": "abc123...", "total": 2}
GET /api/verify/send-batch/status/<task_id> 查进度
POST /api/verify/send-batch/cancel/<task_id> 取消任务
服务状态
GET /api/verify/status
➕ 新建分组
🔄 刷新
默认
{{ g.name }}
{{ g.count }} 个账号
查看账号
重命名
删除
⬇️ 下载
🗑 清空账号