我们有一个测试环境,它几乎是我们 Web 应用程序生产环境的副本。
过去,客户数据的电子邮件地址会被清除,以避免测试系统的电子邮件被泄露。但我们的测试人员告诉我们,他们希望保持这些电子邮件地址的唯一性,即与真实电子邮件地址完全对应。
我认为,一种既能清除信息又不会丢失信息的方法是删除电子邮件地址中的所有点,然后将“.somewordlongerthanfourcharacters”附加到地址的计算机部分。这样测试人员就可以知道客户的真实地址(“[电子邮件保护]->[电子邮件保护]") 另外我们可以设置一个名为“someword”的内部服务器,并让它接收“someword”所有子域的电子邮件。
这是一个有用的想法还是有更好的方法来实现这一点?我应该使用保留的测试域或类似的东西吗?
答案1
我以前用过这个解决方案。在所有电子邮件地址后附加类似 .test.local 的内容。如果您可以控制 DNS,则可以创建一个内部 DNS 域并设置一个带有捕获所有地址的邮件服务器以进行测试,从而避免所有 NDR。
当然,最大的担忧是,当有人“忘记”清理数据和运行测试时会发生什么?
关于附加什么内容的建议?将其设置为互联网上无法解析的内容,即 .local
答案2
我担心这样做会导致所有的 NDR...这可能会变得非常烦人。
您可以使用的另一个选项是将 smtp 服务器设置为您的开发目标,并将其配置为仅接受和丢弃传出消息。希望您的应用程序有某种全局变量来定义要通过哪个 SMTP 服务器进行中继。
答案3
确保测试环境有自己的 DNS,并将生产机器名称映射到测试环境中的机器。将机器用作邮件中继(您可能也应该在生产中这样做,而不是将所有内容放在同一个主机名上),然后将测试邮件中继配置为不执行任何操作。
如果您依赖于本地设备上的 smtp 服务器,那么您可能应该给它一个别名,因为假设您最终可能会在设备上承担过多的负载,并且想要通过不同的服务器推送电子邮件。