更改数据库中的电子邮件地址以使其无法送达
alter email address in DB to render it un-deliverable
我需要更改用户的电子邮件地址以使其无法送达(永远不是真实地址),但是它需要是可逆的以便原始可见或至少可检索(无需将其存储在其他地方)。
例如 john@example.com -> NONAME_john@exampleNOTHING.com
可能有效,因为它可以改回。
但是,问题是我不知道上面生成的地址不是真实的电子邮件地址。也许那里有一个真实的地址叫做 NONAME_john@exampleNOTHING.com。
要求是地址必须有效(就具有“@”和“.com”等而言)但不会发送。
也许我的要求是矛盾的,因此不可能?有人知道吗?
您的要求有点矛盾。使地址无法使用的唯一方法是使它实际上无效。
请注意 "invalid" 至少可以表示三件事;
- 它不会解析为电子邮件地址(例如,将 @ 替换为 ⓐ)
- 该域的用户名无效
- 域名无效
重点是对于 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'
我需要更改用户的电子邮件地址以使其无法送达(永远不是真实地址),但是它需要是可逆的以便原始可见或至少可检索(无需将其存储在其他地方)。
例如 john@example.com -> NONAME_john@exampleNOTHING.com
可能有效,因为它可以改回。
但是,问题是我不知道上面生成的地址不是真实的电子邮件地址。也许那里有一个真实的地址叫做 NONAME_john@exampleNOTHING.com。
要求是地址必须有效(就具有“@”和“.com”等而言)但不会发送。
也许我的要求是矛盾的,因此不可能?有人知道吗?
您的要求有点矛盾。使地址无法使用的唯一方法是使它实际上无效。
请注意 "invalid" 至少可以表示三件事;
- 它不会解析为电子邮件地址(例如,将 @ 替换为 ⓐ)
- 该域的用户名无效
- 域名无效
重点是对于 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'