# iCloud+ Hide My Email addresses will remain on icloud.com

> 来源：[HackerNews](https://developer.apple.com/news/?id=1ptvdtcm)

## iCloud+ Hide My Email 地址持久化：隐私保护与用户体验的新平衡

在数字隐私日益受到重视的今天，Apple 的 **Hide My Email** 功能已成为 iCloud+ 订阅服务中最受欢迎的隐私保护特性之一。该功能允许用户生成随机的、独一无二的电子邮件地址，这些地址会自动将邮件转发到用户的真实邮箱，从而有效防止个人邮箱地址被泄露或用于跟踪。最近，Apple 开发者官网发布了一则重要更新：**所有通过 Hide My Email 生成的地址将永久保留在 icloud.com 上**，即使用户停止使用关联的第三方应用或服务，这些地址依然可以在 iCloud 设置中进行管理。

这一政策调整看似简单，实则深刻影响了用户数据的生命周期管理。以往，开发者可能会担心当用户撤销应用的邮件转发权限时，对应的隐藏邮箱地址会被立即回收或失效。而现在，Apple 明确承诺这些地址将长期驻留在用户的 iCloud 账户中，用户可以随时登录 icloud.com 查看、禁用或重新激活特定的转发地址。这不仅提升了用户对隐私工具的掌控感，也为开发者处理用户身份标识符提供了更稳定的预期。

## 核心内容

### 1. 地址生命周期的永久性保障
根据最新政策，通过 Hide My Email 生成的 `@icloud.com` 地址（包括与 Sign in with Apple 关联的地址）将不会因为用户卸载应用或撤销授权而被删除。这些地址会作为用户数字身份的一部分永久保存在 iCloud 云端，直到用户主动在设置中选择删除。这意味着即使用户暂时停止使用某项服务，其对应的隐藏邮箱依然保持"预留"状态，防止被他人占用或重新分配。

### 2. 集中化管理入口的统一
Apple 将所有的 Hide My Email 地址管理权限整合到了 icloud.com 的网页端。用户可以通过以下路径访问：
- 登录 icloud.com → 进入"账户设置" → 选择"Hide My Email"
- 查看所有活跃和非活跃的转发地址
- 手动创建新的隐藏地址或停用现有地址
- 设置标签和备注以识别不同服务的用途

### 3. 对 Sign in with Apple 的增强支持
对于采用 Sign in with Apple 的开发者而言，这一更新解决了长期存在的用户支持痛点。当用户选择"隐藏我的邮件"选项登录应用时，生成的专用邮箱地址现在具备了更强的持久性。即使用户在应用内删除了账户，只要未在 iCloud 设置中明确删除该地址，开发者仍可通过该邮箱与用户进行必要的后续沟通（如账户恢复、数据删除确认等），前提是符合隐私政策。

### 4. 开发者验证流程的稳定性
由于隐藏邮箱地址不再因应用状态变化而失效，开发者在处理用户注册和邮件验证时可以依赖更稳定的标识符。这减少了因地址失效导致的邮件退回率，改善了用户留存数据的质量。但需要注意的是，用户仍可能随时在 iCloud 设置中停用特定地址的转发功能，开发者应当优雅处理邮件投递失败的情况。

### 5. 隐私边界的重新定义
这一政策实际上在用户体验和隐私保护之间建立了新的平衡点。地址的持久化确保了服务连续性，但用户保留了随时切断联系的能力。这种"可断开的永久连接"模式为行业提供了隐私设计的最佳实践范例。

## 技术分析

Hide My Email 的技术架构基于 Apple 的**私有邮件中继系统（Private Email Relay）**。当用户生成隐藏地址时，系统会在 iCloud 邮件服务器上创建一个映射表项，将随机生成的别名（如 `randomstring@icloud.com`）与用户的真实 Apple ID 邮箱关联。

```javascript
// 概念性示例：Hide My Email 的验证流程
const verifyHideMyEmail = (email) => {
  // 检查是否为有效的 iCloud 隐藏邮箱格式
  const hideMyEmailRegex = /^[a-z0-9]{10,25}@icloud\.com$/;
  
  if (hideMyEmailRegex.test(email)) {
    // 向 Apple 的验证端点查询地址状态
    // 注意：实际应使用 Server-to-Server 通知或 JWT 验证
    return {
      isValid: true,
      isReachable: checkAppleRelayStatus(email),
      // 地址现在保证长期存在，但仍可能停止转发
      persistence: 'permanent_address_temporary_forwarding'
    };
  }
};
```

在数据库设计层面，建议开发者将 Hide My Email 地址视为**半永久标识符**：

1. **存储策略**：即使检测到邮件退回（bounce），也不应自动删除用户记录，而是标记为"待验证"状态
2. **身份关联**：考虑到一个用户可能拥有多个隐藏地址，建立用户主体与多个邮箱别名的多对多关系
3. **通知处理**：实现 Apple 的**服务器对服务器通知（Server-to-Server Notifications）**，实时获取地址转发状态变更

架构上，这一更新意味着 Apple 在其分布式系统中为这些地址引入了**强一致性保证**。以前可能存在的边缘缓存清理或定期回收机制，现在被替换为与 Apple ID 账户生命周期绑定的持久化存储策略。

## 实践建议

对于中国的 iOS 开发者，集成 Hide My Email 功能时需要特别注意以下几点：

**邮件验证逻辑优化**
不要假设 Hide My Email 地址在验证邮件发送后仍然有效。建议实现指数退避重试机制，并在多次失败后引导用户通过应用内界面更新邮箱：

```swift
// 示例：处理邮件发送失败
func handleEmailBounce(email: String, error: Error) {
    if isHideMyEmail(address: email) {
        // 标记账户为需要重新验证，而非直接删除
        account.status = .emailVerificationRequired
        notifyUserToUpdateEmail()
    }
}
```

**用户支持流程**
建立专门的流程处理用户报告"收不到邮件"的情况。由于用户可能在 icloud.com 上停用了转发，建议在应用内提供诊断链接，引导用户检查其 Hide My Email 设置。

**测试环境配置**
在开发和测试阶段，使用沙盒环境的 Apple ID 测试 Hide My Email 功能。确保应用能正确处理 `@icloud.com` 和 `@privaterelay.appleid.com` 两种格式的私有邮箱地址。

**合规性检查**
如果你的应用面向中国用户，确保在隐私政策中明确说明可能通过 Apple 的私有邮件中继服务与用户通信，并遵守《个人信息保护法》关于间接获取个人信息的规定。

## 总结

Apple 将 Hide My Email 地址永久保留在 icloud.com 的决策，标志着隐私保护工具从"临时遮蔽"向"可持续身份管理"的演进。对于开发者而言，这降低了因用户隐私设置变更导致的服务中断风险，但也要求我们在系统架构中更加谨慎地处理这些"半永久"标识符。在隐私计算和去中心化身份日益重要的今天，这种既保护用户隐私又维护服务连续性的设计思路，值得每一位关注用户体验的开发者深入思考与实践。