# 1385 Inactive Email Domains 1ff23e80

> 失活邮箱域名分析 (Inactive Email Domains Analysis)

- Skill: `tools-only/1385-inactive-email-domains-1ff23e80` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tools-only/1385-inactive-email-domains-1ff23e80`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/1385-inactive-email-domains-1ff23e80/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/tools-only/1385-inactive-email-domains-1ff23e80

---

# 失活邮箱域名分析 (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` (近期活跃起点)

定义一个时间窗口的起点，只分析在此时间点**之后**有过登录活动的域名。

**作用**:
1. **性能优化**: 避免查询全部历史数据，只关注近期数据
2. **分析相关性**: 只关注"最近还活跃，但现在失活了"的域名
3. **排除噪音**: 过滤掉很久以前就废弃的古老域名

**实际含义**:
- 只分析"在 `[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:00
- `active_since`: 6个月前

**示例 2: 查询本周失活的域名（最近1个月有登录）**
```
查询本周一之后失活的邮箱域名，只看最近1个月有登录的域名
```
参数:
- `whitelist_update_time`: 本周一 00:00:00
- `active_since`: 1个月前

**示例 3: 识别主流邮箱的失活情况**
```
识别近期失活的主流邮箱域名（gmail、outlook、163等），
最近3个月有登录
```
参数:
- `whitelist_update_time`: 今天 10:00:00
- `active_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`)，而非账号创建时间，更准确反映用户真实活跃情况。

### 查询逻辑

1. 获取所有历史域名及其统计信息（基于用户最后登录时间）
2. 筛选出 `whitelist_update_time` 之后没有登录活跃的域名
3. 过滤出最后登录时间在 `active_since` 之后的域名
4. 排除临时邮箱域名（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 白名单](https://www.notion.so/myshellai/2d43f81ff51e805cb05df7eef873f2f5)

## 使用场景

### 场景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 等主流邮箱出现失活，需要检查：
1. 系统登录是否有问题
2. 数据统计是否准确
3. 是否有地区性网络问题

通常主流邮箱不应该大规模失活。

## 使用建议

### 定期维护

**每月运行一次**，维护白名单质量：
```
查询本月失活的域名（最近3个月有登录），
移除中期失活以上（>30天）的域名
```

### 异常告警

设置告警规则：
- 主流邮箱（gmail/outlook/qq）出现失活 → 立即排查
- 单日失活域名数 > 平均值 3倍 → 异常告警
- 失活用户数 > 10% 总用户 → 严重告警

### 白名单策略

根据失活等级制定策略：
- **近期失活 (≤7天)**: 观察，暂不处理
- **短期失活 (7-30天)**: 持续关注
- **中期失活 (30-90天)**: 考虑从白名单移除
- **长期失活 (90-180天)**: 建议移除
- **超长期失活 (>180天)**: 立即移除

## 实现文件

完整实现请参考: `inactive-email-domains.md`

