失活邮箱域名分析 (Inactive Email Domains Analysis)
描述
分析历史上曾活跃但现已失活的邮箱域名,基于用户最后登录时间判断活跃度。用于优化白名单管理,识别需要移除的失活域名,提升用户质量。
何时调用此 Skill
使用此 skill 当你需要:
- ✅ 管理白名单,识别需要移除的失活域名
- ✅ 监控用户活跃度,识别异常失活模式
- ✅ 优化用户获取策略,过滤低质量邮箱
- ✅ 分析主流邮箱(gmail、outlook等)的失活情况
- ✅ 定期清理白名单,提升数据准确性
关键词: 白名单、失活、邮箱域名、用户活跃度、最后登录时间
核心指标
- 失活域名总数: 满足失活条件的域名数量
- 失活用户总数: 失活域名对应的用户总数
- 失活天数: 从最后活跃时间到现在的天数
- 主流邮箱失活数: 统计 gmail、outlook、163 等常见邮箱的失活情况
失活等级分类
| 分类 | 失活天数 | 说明 | 优先级 |
|---|---|---|---|
| 近期失活 | ≤ 7天 | 最近一周内失活 | ⚠️ 观察 |
| 短期失活 | 7-30天 | 1周到1个月内失活 | ⚠️⚠️ 关注 |
| 中期失活 | 30-90天 | 1个月到3个月内失活 | 🔴 考虑移除 |
| 长期失活 | 90-180天 | 3个月到6个月内失活 | 🔴🔴 建议移除 |
| 超长期失活 | > 180天 | 6个月以上失活 | 🔴🔴🔴 立即移除 |
使用方法
基本用法
查询今天 10:00 后失活的邮箱域名(最近半年有登录)
参数说明
| 参数 | 说明 | 默认值 | 示例 |
|---|---|---|---|
whitelist_update_time |
白名单更新时间点 (YYYY-MM-DD HH:MM:SS) | 今天 10:00:00 | 2025-12-26 10:00:00 |
active_since |
近期活跃起点 (YYYY-MM-DD) | 最近1个月 | 2025-11-26 |
参数说明详解
active_since (近期活跃起点)
定义一个时间窗口的起点,只分析在此时间点之后有过登录活动的域名。
作用:
- 性能优化: 避免查询全部历史数据,只关注近期数据
- 分析相关性: 只关注"最近还活跃,但现在失活了"的域名
- 排除噪音: 过滤掉很久以前就废弃的古老域名
实际含义:
- 只分析"在
[active_since, whitelist_update_time)时间段内有过登录活动"的域名 - 如果一个域名的最后活跃时间早于
active_since,即使在whitelist_update_time之后也没活跃,也不会被纳入分析
示例:
whitelist_update_time = 2025-12-26 10:00:00
active_since = 2025-11-26 (近期活跃起点 = 最近1个月)
含义:只分析"在 2025-11-26 到 2025-12-26 10:00 这段时间内有过活跃,
但在 12-26 10:00 之后就失活了"的域名
域名A: 最后活跃 = 2025-12-20 → ✅ 纳入分析(在窗口内且已失活)
域名B: 最后活跃 = 2025-10-01 → ❌ 不纳入(比近期活跃起点还早)
域名C: 最后活跃 = 2025-12-26 11:00 → ❌ 不纳入(仍然活跃)
高级用法示例
示例 1: 查询今天失活的域名(最近半年有登录)
查询今天 10:00 后失活的邮箱域名,只看最近半年有登录的域名
参数:
whitelist_update_time: 今天 10:00:00active_since: 6个月前
示例 2: 查询本周失活的域名(最近1个月有登录)
查询本周一之后失活的邮箱域名,只看最近1个月有登录的域名
参数:
whitelist_update_time: 本周一 00:00:00active_since: 1个月前
示例 3: 识别主流邮箱的失活情况
识别近期失活的主流邮箱域名(gmail、outlook、163等),
最近3个月有登录
参数:
whitelist_update_time: 今天 10:00:00active_since: 3个月前
示例 4: 查找需要从白名单移除的域名
查找中期失活以上(>30天)的域名,建议从白名单移除
示例 5: 分析本月失活趋势
查询本月1号之后失活的所有域名,按失活等级分组统计
输出内容
1. 失活域名列表(按用户数降序)
| 排名 | 域名 | 用户数 | 首次出现 | 最后活跃 | 失活天数 | 失活等级 |
|---|---|---|---|---|---|---|
| 1 | 163.com | 9,560 | 2023-06-23 | 2025-12-25 23:07 | 0.3 | 近期失活 |
| 2 | googlemail.com | 1,917 | 2024-04-10 | 2025-12-26 06:01 | 0.2 | 近期失活 |
| 3 | qq.com | 8,234 | 2023-05-15 | 2025-12-10 15:30 | 16.2 | 短期失活 |
列说明:
- 首次出现: 该域名所有用户中最早的登录时间
- 最后活跃: 该域名所有用户中最后的登录时间
- 失活天数: 从该域名最后活跃时间到现在的天数
2. 汇总统计
分析时间范围: {active_since} 至 {whitelist_update_time}
白名单更新时间: {whitelist_update_time}
======================== 失活统计 ========================
失活域名总数: {total_inactive_domains}
失活用户总数: {total_inactive_users}
按失活等级分布:
- 近期失活 (≤7天): {count_recent} 个域名, {users_recent} 用户
- 短期失活 (7-30天): {count_short} 个域名, {users_short} 用户
- 中期失活 (30-90天): {count_medium} 个域名, {users_medium} 用户
- 长期失活 (90-180天): {count_long} 个域名, {users_long} 用户
- 超长期失活 (>180天): {count_verylong} 个域名, {users_verylong} 用户
======================== 主流邮箱失活情况 ========================
Gmail (gmail.com, googlemail.com): {gmail_status}
Outlook (outlook.com, hotmail.com): {outlook_status}
QQ (qq.com): {qq_status}
163 (163.com): {163_status}
Yahoo (yahoo.com): {yahoo_status}
3. 建议操作
立即移除(超长期失活 >180天):
- 域名列表...
考虑移除(中长期失活 30-180天):
- 域名列表...
持续观察(短期失活 7-30天):
- 域名列表...
技术说明
数据来源
my_shell_prod.user_privy- 用户邮箱信息表my_shell_prod.user- 用户表(lastLoginTime字段)
分析维度
⚠️ 重要: 本分析基于用户最后登录时间 (user.lastLoginTime),而非账号创建时间,更准确反映用户真实活跃情况。
查询逻辑
- 获取所有历史域名及其统计信息(基于用户最后登录时间)
- 筛选出
whitelist_update_time之后没有登录活跃的域名 - 过滤出最后登录时间在
active_since之后的域名 - 排除临时邮箱域名(56个)
临时邮箱域名(自动排除)
包括: yopmail.com, mailinator.com, 10minutemail.com, guerrillamail.com, temp-mail.org, throwaway.email 等 56 个域名。
白名单邮箱域名(共153个)
包括: gmail.com, outlook.com, yahoo.com, hotmail.com, icloud.com, qq.com, 163.com 等 153 个主流邮箱。
来源: Notion 白名单
使用场景
场景1: 定期白名单维护
频率: 每月运行一次
查询本月1号后失活的域名(最近3个月有登录),
识别需要从白名单移除的域名
场景2: 异常监控
频率: 每周运行一次
查询本周失活的域名,识别是否有异常的大规模失活
场景3: 主流邮箱监控
频率: 有异常时运行
如果发现 gmail.com 或 outlook.com 等主流邮箱失活,
需要排查系统是否有问题
常见问题
Q1: 为什么要基于最后登录时间而非创建时间?
最后登录时间更能反映用户活跃度:
- 创建时间: 用户何时注册,但可能很久不用
- 最后登录时间: 用户最近一次活跃时间,更准确
Q2: 首次出现和最后活跃是什么含义?
这两个时间都是针对该域名所有用户的统计:
- 首次出现: 该域名下所有用户中最早的登录时间
- 最后活跃: 该域名下所有用户中最后的登录时间
不是单个用户的数据。
Q3: 失活天数为什么会有小数?
失活天数 = (当前时间 - 最后活跃时间) / (1000 × 60 × 60 × 24)
精确到小时,所以会有小数。例如:
- 0.3天 ≈ 7.2小时
- 1.5天 = 1天12小时
Q4: 如何确定 active_since 参数?
建议根据分析目的选择:
- 白名单维护: 最近1-3个月(排除古老域名)
- 异常监控: 最近半年(发现异常失活模式)
- 全面清理: 最近1年(彻底清理失活域名)
Q5: 主流邮箱失活是否异常?
如果 gmail.com、outlook.com 等主流邮箱出现失活,需要检查:
- 系统登录是否有问题
- 数据统计是否准确
- 是否有地区性网络问题
通常主流邮箱不应该大规模失活。
使用建议
定期维护
每月运行一次,维护白名单质量:
查询本月失活的域名(最近3个月有登录),
移除中期失活以上(>30天)的域名
异常告警
设置告警规则:
- 主流邮箱(gmail/outlook/qq)出现失活 → 立即排查
- 单日失活域名数 > 平均值 3倍 → 异常告警
- 失活用户数 > 10% 总用户 → 严重告警
白名单策略
根据失活等级制定策略:
- 近期失活 (≤7天): 观察,暂不处理
- 短期失活 (7-30天): 持续关注
- 中期失活 (30-90天): 考虑从白名单移除
- 长期失活 (90-180天): 建议移除
- 超长期失活 (>180天): 立即移除
实现文件
完整实现请参考: inactive-email-domains.md