Berislav Babic

如今保持数据一致、合规且真实相当困难。我们了解遗留代码技术债务问题,但很少关注数据债务。如果您拥有 100% 的订阅业务并删除订阅已过期的用户,这个问题并不明显。我知道有些公司想永久保留所有数据,但这既是巨大的隐私合规漏洞,也可能成为性能漏洞。我将在另一篇文章中深入探讨性能问题。
现在,我们来谈谈电子邮件。大多数 Web 应用程序使用类似的流程。当用户注册您的应用程序时,他们输入电子邮件,然后继续使用当下流行的任何身份验证方式。这可能是输入密码、发送到其电子邮件的一次性令牌,或创建通行密钥。现在您的系统中有了一个用户,如果您允许他们使用电子邮件和密码创建账户,则必须验证其电子邮件。一种常见的方法是不让用户登录,除非他们确认电子邮件。然而,仍然有一些大公司不关心事先的电子邮件确认,因为他们想吸引用户。
但是,如果您有一个非常旧(超过十年)的免费增值产品数据集,其中包含大量未验证的电子邮件,会发生什么?那么,您至少可能面临三个问题:

  1. 未验证但有效的电子邮件
  2. 未验证但在注册时有效的电子邮件([email protected] 在那里不再有效,他们的电子邮件已从服务器中删除)
  3. 未验证且无效的电子邮件(有人使用他人的电子邮件注册)

如果您发现自己处于这种情况,请不要担心,我们有很多技巧可以清理数据集并确保它永远不会变得太脏。
首先,如果您尚未开启电子邮件验证(以及电子邮件更改时的重新验证),请确保对所有新账户强制执行。您必须以某种方式开始捕获健康数据。然后在短时间内删除未验证电子邮件的账户(创建每周任务或其他操作)。并确保我们不会向该地址发送除验证邮件之外的任何内容。

现在谈谈遗留数据清理。我喜欢收到一封电子邮件,告诉我我的账户将在 X 天后被标记为删除。这封邮件来自我几年前注册以测试其产品的公司。这甚至可能让我重新登录,看看是否有任何变化,如果我还记得它是什么的话。

让我们看看如何将此流程应用于我们的情况。首先,您创建一项新政策,即在 12 个月不活跃后删除用户数据。如今,即使让用户使用您的应用程序并为其付费都很困难,所以您不想强迫任何人点击或做任何事情。但我们可以使用此政策更新电子邮件来过滤退回/无效的电子邮件。这会在短时间内降低您的电子邮件提供商声誉。但由于您正在向所有用户发送有效电子邮件,并且比垃圾邮件更容易提出异议。在电子邮件发送给所有用户后,您的电子邮件服务提供商现在拥有您可以利用的宝贵数据。这就是他们系统中的退回/无效电子邮件列表。假设您有 2000 个用户,向他们发送政策更新电子邮件,您收到 250 个退回和/或无效的电子邮件。这意味着您的电子邮件送达率为 87.5%,这不是很好,但也不是世界末日。让我们把它变成对我们有利的事情,导出这些列表并将用户标记为具有无效电子邮件。现在,如果用户在很长一段时间内(长于您规定的政策)处于不活跃状态,并且电子邮件也无效,请继续删除他们。并且真正删除他们,不要将电子邮件更新为 @deleteduser.com。如果用户处于活跃状态,您必须以某种方式告诉他们他们的电子邮件无效,这就是您需要发挥创造力的地方。在您的应用中弹出消息,告知他们需要验证/更改电子邮件是一种方法,对用户造成不同程度的不便(小弹出窗口、大弹出窗口、全屏模态)。您可以将验证参数嵌入到发送到该电子邮件的所有链接中,并在您的应用程序中捕获这些点击。所有这些当然都会增加一些编程和服务器开销,但安全总比后悔好。
然后,您会陷入我仍然不确定的最后一个陷阱。在验证新电子邮件时,您是验证新电子邮件还是旧电子邮件,您是否向旧电子邮件发送消息告知用户已更改其电子邮件?这是另一天和另一篇文章的问题。让我们回到我们的问题,您想保留所有可以保留的用户(尤其是那些向您付费的用户),并尽可能将试用用户转换为付费用户。但您也希望保持数据干净且真实
只有一种理智的方法可以摆脱这种情况,这就是确保所有用户的电子邮件都有效。如果无效,并且用户处于活跃状态,请确保他们验证其有效电子邮件并更改无效的电子邮件。这会让您的数据库和电子邮件提供商都感到高兴。您的电子邮件发送声誉将尽可能保持高水平,进入垃圾邮件的可能性大大降低。