【发布时间】:2011-01-20 03:38:19
【问题描述】:
假设您正在设计一个具有规则支持(如条件转发等)的精美电子邮件服务器。电子邮件循环的古老问题让您眼前一亮:
1) 假设您设置了将所有邮件转发到另一个地址的规则。如果该地址不存在,并且该域的邮递员将消息发回给您,告诉您这一点怎么办。当然,您的规则不会区分这些消息并转发它们,从而创建一个循环。
2) 另一种情况是两个用户,使用这个客户端客户端,设置转发规则到对方的地址。我们所需要的只是一条启动消息,它们将分拆成一个循环。
3) 或者,自动回复情况如何,客户端转发到自动回复的地址,从而导致另一个循环。
我不是这方面的专家,但看起来检测循环不起作用。我们当然可以想出一些启发式方法,但似乎不存在包罗万象的算法。
我一直在考虑的一个解决方案根本不涉及检测。相反,我们只是观察帐户的邮件发送活动高(或由规则引起的高发送活动),并暂时禁用这些帐户的电子邮件/规则,直到他们纠正问题为止。但是,此解决方案必须在导致循环的帐户与仅接收大量邮件并将其转发到其他地方的帐户之间进行区分。
我们还可以对所有帐户应用限制,并确保如果循环开始,它们不会占用大量带宽。不过,在邮箱填满之前,这不会停止循环的运行。
我缺少什么好的解决方案吗?
【问题讨论】: