背景 :我正在集成在ASP .NET和JSP / Struts中开发的两个独立的Web应用程序。 因此,它们托pipe在两种不同的服务器技术上,即Win2K3和Redhat Enterprise Server 5.5。
问题:在我的testing环境中有真实电子邮件地址的生产数据副本。 我需要testing这些应用程序的电子邮件function,但我不希望他们发送实际的电子邮件。 有没有办法抓住和redirect所有传出的电子邮件?
理想情况下,我想将所有发出的电子邮件发送到另一封电子邮件(即[email protected]),以便我的testing人员可以查看它们。
我在这里先向您的帮助表示感谢!
首先,您应该从您的开发环境中清除真实的数据。 另外请注意,这里有很多variables和选项。
在Linux开发服务器上,我将首先通过过滤stream量或停止邮件守护进程来阻止邮件发送。 要停止交通,这将在大多数现代化的环境中工作:
iptables -A OUTPUT -p tcp --dport 25 -j DROP
我的开发networking无法连接到这个和其他大多数端口,因为这是一个默认的丢弃策略,我不允许例外。 我通常将中继smtp专用于每个子网,我可以在那里执行额外的中继策略。 开发服务器也不允许通过这个主机进行中继。
稍后,您可能必须在重新启动守护程序之前清除邮件队列中的邮件,或根据您的方法删除规则。
在Windows上,通常您没有运行本地邮件服务器。 转到源代码并阻止其工作,或者指向已经丢弃电子邮件的Linux服务器。
如果您在服务器之间共享同一个smtp中继主机,则可以停止从这些服务器进行邮件中继。 如果他们共享相同的网关,则可以将stream量放在那里。
如果您要testing应用程序function,则可以在服务器本地创build一个testing电子邮件帐户,并将电子邮件发送到那里或查看传出的电子邮件日志。 这就是我在我们的开发环境中执行的。 在我的情况下,发展只能在服务器特定的时期电子邮件本地用户帐户。 没有中继或交付到本地邮件服务器。 更多的东西引入了错误的可能性,这很可能发生。
如果您仍然坚持重新路由所有外发邮件,解决scheme将取决于您的MTA。