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