更改数据库中的电子邮件地址以使其无法送达

alter email address in DB to render it un-deliverable

我需要更改用户的电子邮件地址以使其无法送达(永远不是真实地址),但是它需要是可逆的以便原始可见或至少可检索(无需将其存储在其他地方)。

例如 john@example.com -> NONAME_john@exampleNOTHING.com 可能有效,因为它可以改回。 但是,问题是我不知道上面生成的地址不是真实的电子邮件地址。也许那里有一个真实的地址叫做 NONAME_john@exampleNOTHING.com。

要求是地址必须有效(就具有“@”和“.com”等而言)但不会发送。

也许我的要求是矛盾的,因此不可能?有人知道吗?

您的要求有点矛盾。使地址无法使用的唯一方法是使它实际上无效。

请注意 "invalid" 至少可以表示三件事;

  1. 它不会解析为电子邮件地址(例如,将 @ 替换为 ⓐ)
  2. 该域的用户名无效
  3. 域名无效

重点是对于 2 和 3,没有简单的方法可以确定是否是这种情况。


您还可以通过应用可逆转换来混淆电子邮件地址,例如对其进行base64编码。这属于上述第 1 类。

例如 Python 3:

In [1]: import base64 

In [2]: base64.b64encode('john@example.com'.encode('utf-8')) 
Out[2]: b'am9obkBleGFtcGxlLmNvbQ=='

In [3]: base64.b64decode(b'am9obkBleGFtcGxlLmNvbQ==').decode('utf-8') 
Out[3]: 'john@example.com'