电子邮件机器人 - 避免无限循环

问题描述 投票:0回答:1

我正在编写一个电子邮件机器人,并认为我可能会由于外出回复而陷入无限循环。很好奇您是否知道这里有任何经过实战检验的解决方案。

场景:

  • 想象一下您正在编写一个电子邮件机器人来接收电子邮件、处理电子邮件并发回回复。

  • 现在,发送电子邮件的用户在其客户端中配置了自动外出 (OOO) 回复。

    • 假设它是一个愚蠢的客户端,总是自动回复,没有逻辑知道特定电子邮件是否已被通知其 OOO 状态。

如何防止无限循环?

  • (用户向机器人发送电子邮件,机器人响应,OOO 被触发,机器人响应 OOO,另一个 OOO 被触发,等等)

假设您不能只配置不同的回复电子邮件,因为在正常使用情况下,您希望能够回复响应。

选项:

  • 是否有库可以可靠地检测 OOO 并忽略?鉴于它是多语言、多种格式、来自许多电子邮件客户端,这似乎不太可能。

  • 您是否会为每个用户实现某种历史记录,并且如果您连续 Y 次看到同一个人的前 X 个字符,您会忽略他们的消息?看起来不精确,可能会意外地阻止具有类似但冗长序言的电子邮件。

  • 您会实施某种限制吗?似乎您可以捕获非常快的自动回复,但不能捕获每小时回复一次的慢速自动回复。

您在实践中看到了哪些其他解决方案来防止此问题?

algorithm email throttling
1个回答
0
投票

您可以为每个电子邮件地址分配一个“桶”,并使用令牌桶算法来限制活动。如果您看到“ping-ping”,则表明在短时间内从特定电子邮件地址收到了很多消息,并且当来自客户的电子邮件太多时 - 您将停止回复。

© www.soinside.com 2019 - 2024. All rights reserved.