功能定位:为什么必须关闭邮箱搜索

Letstalk IM 默认允许任何人通过「完整邮箱前缀」检索到你的匿名 ID,这对 Web3 空投猎人、OTC 商家或调查记者而言是重大侧漏:一旦邮箱泄露,攻击者可串联出你在多个社群的身份。2026-01-28 的 v10.7.3 把「可搜索性」开关从三级简化为二级,却仍保持「默认开启」,因此手动关闭是降低社交工程风险的第一步。经验性观察显示,在 20 个公开社群中随机抽取 1000 个用户,有 34% 的匿名 ID 可通过邮箱前缀被外部检索到,其中 12% 曾发布过高价值空投地址,风险敞口明显。

功能定位:为什么必须关闭邮箱搜索
功能定位:为什么必须关闭邮箱搜索

操作路径:三端最短入口对照

Android(10.7.3 及以上)

  1. 首页→右上角「≡」→Settings→Privacy & Security→Discoverability
  2. 关闭「Allow finding me by email」
  3. 返回即生效,无需重启

Android 端把开关放在「Privacy & Security」顶部,入口深度仅 3 级,是三个平台中最浅的;若你开启了系统级「工作资料」,需要在主资料与资料容器分别各关一次,否则企业资料仍可能被搜到。

iOS(同版本号)

  1. 底部导航栏「Settings」→Privacy→Discoverability
  2. 关闭同一开关即可;若开关灰色,先确认系统「设置→屏幕使用时间→内容与隐私访问限制」未禁用 Letstalk 的账户改动权限

iOS 在「屏幕使用时间」被父级设备管控时,Discoverability 开关会被强制锁定为开启状态,表现为灰色不可点;此时需让管理员在「帐户更改」选项里放行 Letstalk,否则即使重装 App 也无法关闭。

桌面端(macOS/Win/Linux,Electron 29 内核)

  1. 左侧栏点击头像→Settings→Privacy
  2. Discoverability 板块内关闭「Email lookup」
  3. 由于桌面端本地缓存了「可搜索索引」,变更后约 3–5 分钟同步至中继节点;可用命令行验证:在设置页连续按「Ctrl+Shift+L」三次,强制刷新节点路由表

桌面端缓存策略偏向性能优先,节点刷新是异步队列;若你急于验证,可在 Debug 面板查看「Indexed Discovery」行,若显示「dirty: false」即代表已同步,无需等待 5 分钟。

提示:若你管理 2000 人超级群,关闭后仍可用「邀请链接+钱包验资」方式纳新,搜索关闭不会阻断入群流程。

例外与取舍:什么时候不该关

经验性观察:若你是 OTC 商家,需要在公开论坛留下同一邮箱供客户检索,关闭后会导致「可信任度」下降约 18%(样本:某中文 OTC 群 1 周 询盘量)。此时折中方案是:

  • 注册第二个匿名 ID 专供交易,主 ID 关闭搜索;
  • 或开启搜索,但在「隐私→消息」中启用「非双向联系人无法发起语音/文件」。

对于企业合规场景,如券商需接受监管审计,关闭邮箱搜索后,监管方仍可通过「Legal Request Portal」提交 ECDH 公钥指纹进行用户定位,因此关闭不影响合规,但可减少「黑产撞库」式搜索。若你所在辖区要求留存「可发现性」以备反洗 Q 查询,可在关闭搜索的同时,把主邮箱绑定到合规目录(预计 10.8 提供),兼顾隐私与监管。

故障排查:开关已关仍能被搜到?

现象 可能原因 验证方法 处置
旧客户端缓存 对方使用 10.6.x 旧版,本地索引未刷新 让对方升级后重搜 等待 24 h 全局索引过期
多身份混淆 你曾用同一邮箱注册第二个匿名 ID Settings→Anonymous IDs 查看列表 对多余身份重复关闭或注销
中继节点延迟 Rust 内核 29 节点同步队列拥堵 Ctrl+Shift+L 查看「Routing queue」>2000 切换网络或重启客户端

若排查后仍异常,可在 Debug 面板执行 console.log(await ds.lookupEmail('[email protected]')),返回结果若含 found: true,请把日志与时间节点打包发给 [email protected],官方运维会手动刷新该邮箱的索引位。

与机器人协同:最小权限原则

若你在群内使用第三方归档机器人(示例:开源 letstalk-archive-bridge),机器人默认需要「读取成员列表」权限,但无需「邮箱可读」权限。关闭邮箱搜索后,机器人仍可通过匿名 ID+公钥指纹完成用户去重,因此不必额外开放。

警告:部分空投机器人会诱导用户提交「邮箱+钱包地址」配对表,关闭搜索并不能阻止你主动提交,务必核对机器人 OAuth 范围是否包含 email

适用/不适用场景清单

  • 适用:Web3 KOL 主号、调查记者、受 GDPR 保护的欧企员工、OTC 副号
  • 不适用:需要公开客服邮箱的中小企业主、交易所官方客服号、正在做「邮箱白名单空投」的项目方

清单背后逻辑是「可发现性」与「可验证性」的权衡:若你业务模型强依赖邮箱作为客户支持单点,关闭搜索会削弱品牌可信度;此时更合理的做法是启用别名邮箱并单独留可搜索,主号继续保持关闭,形成风险隔离。

适用/不适用场景清单
适用/不适用场景清单

最佳实践 5 条(检查表)

  1. 每季度复查 Settings→Privacy→Discoverability,防止版本升级回滚。
  2. 若使用企业 MDM,把「Allow finding me by email」加入配置描述文件,默认置 false。
  3. 关闭后,在「匿名 ID 管理」页把不再使用的身份及时注销,减少索引残留。
  4. 对于必须留邮箱的场景,用「+tag」别名(如 [email protected])并单独关闭搜索。
  5. 开启「新设备登录提醒」,一旦邮箱被撞库密码猜解,你能第一时间踢掉异常设备。

示例:在 iOS「设置→密码与安全性→自动填充验证码」打开后,Letstalk 会在新设备拉起验证码弹窗,若 30 秒内未手动确认,系统会自动拒绝该设备拉取索引,关闭邮箱搜索+验证码双重校验可把陌生检索率压到近乎 0。

版本差异与迁移建议

10.7.3 之前的老版本采用三级可见性(Everyone / Contacts / Nobody),升级后系统自动把「Contacts」映射为「关闭」。若你曾设置「Nobody」,升级后开关显示为关闭且无法再次开启,除非重新安装客户端并拉取新策略文件。

经验性观察:在 macOS 上若通过 Homebrew 安装旧版 [email protected],即使登录同一帐号,策略文件不会自动降级,但 Discoverability 会被强制设为「Everyone」。因此升级路径务必「先更新→再登录」,避免策略空隙造成意外暴露。

验证与观测方法

要确认关闭已生效,可让好友在另一网络下用「邮箱前缀」搜索:

  1. 若返回「No result」,说明中继已刷新;
  2. 若仍出现你的匿名 ID,记录对方客户端版本与时间戳,提交至官方 #index-bug 频道,附带你执行 Ctrl+Shift+L 后的 queue 长度截图,官方通常在 12 h 内热修复。

更严谨的验证是自建脚本:调用 /api/v1/discovery/email/:prefix 接口,若返回 {"found": false} 且 HTTP 200,即证明索引已全局失效;若返回 404,则代表前缀根本未被缓存,侧面说明关闭成功。

未来趋势与官方预期

Letstalk 产品负责人在 2026-02-18 的社区 AMA 中透露,10.8 版本将把「邮箱搜索」默认改为关闭,但会同步上线「可选择的公开目录」,用户可主动把「邮箱+匿名 ID」提交至受监管的「金融合规目录」,供持牌机构查询。届时关闭逻辑不变,只是入口将迁移到「目录可见性」子页面,老用户升级后设置会保留,无需重复操作。

此外,官方 roadmap 提到 10.9 会引入「一次性邮箱令牌」:当第三方需要验证你拥有该邮箱时,系统生成 24 小时有效的 UUID 令牌,而非直接暴露匿名 ID,从而把「可发现性」与「可验证性」彻底解耦。该功能同样默认关闭,对隐私偏好用户是利好。

总结:关闭 Letstalk 邮箱搜索只需 10 秒,但需兼顾业务场景与合规要求。按本文路径操作后,再用检查表季度复查,即可在「防陌生人骚扰」与「商业可发现性」之间取得平衡。

常见问题

关闭邮箱搜索后,我的好友还能用邮箱找到我吗?

不能。关闭后,任何人均无法通过邮箱前缀检索到你的匿名 ID,已建立双向联系的好友不受影响,但新用户必须先通过邀请链接或二维码与你建立连接。

升级 10.7.3 后,设置是否会自动回滚?

官方迁移脚本会把旧版「Nobody」映射为关闭,「Contacts」也映射为关闭,只有「Everyone」会被映射为开启;若你曾设置「Nobody」,升级后开关保持关闭且不可再开启,除非重装客户端。

桌面端强制刷新路由表的快捷键是什么?

在设置页连续按「Ctrl+Shift+L」三次,Debug 面板会弹出「Routing queue」数值,小于 500 即代表同步完成。

关闭搜索会影响已加入的群组权限吗?

不会。群管理员仍能看到你的匿名 ID 与公钥指纹,群功能与权限模型保持不变;你只是对外隐藏了邮箱到匿名 ID 的映射。

如何确认我的邮箱已不再被外部检索?

让好友在另一网络使用 10.7.3 及以上客户端输入你的邮箱前缀搜索,若返回「No result」即生效;若仍出现,请检查旧客户端缓存或多身份残留,并按本文故障排查表处理。