我正在编写一个电子邮件机器人,并认为我可能会由于外出回复而陷入无限循环。很好奇您是否知道这里有任何经过实战检验的解决方案。
场景:
想象一下您正在编写一个电子邮件机器人来接收电子邮件、处理电子邮件并发回回复。
现在,发送电子邮件的用户在其客户端中配置了自动外出 (OOO) 回复。
如何防止无限循环?
假设您不能只配置不同的回复电子邮件,因为在正常使用情况下,您希望能够回复响应。
选项:
是否有库可以可靠地检测 OOO 并忽略?鉴于它是多语言、多种格式、来自许多电子邮件客户端,这似乎不太可能。
您是否会为每个用户实现某种历史记录,并且如果您连续 Y 次看到同一个人的前 X 个字符,您会忽略他们的消息?看起来不精确,可能会意外地阻止具有类似但冗长序言的电子邮件。
您会实施某种限制吗?似乎您可以捕获非常快的自动回复,但不能捕获每小时回复一次的慢速自动回复。
您在实践中看到了哪些其他解决方案来防止此问题?
您可以为每个电子邮件地址分配一个“桶”,并使用令牌桶算法来限制活动。如果您看到“ping-ping”,则表明在短时间内从特定电子邮件地址收到了很多消息,并且当来自客户的电子邮件太多时 - 您将停止回复。