foxmail7.2.18大量邮件重复bug说明

一、问题描述

 

 

foxmail7.2.18(PC Windows 官网中显示2020-07-29发布)版本中,如果从A邮件箱移动一封邮件到B邮件箱,foxmail对待移动操作会拆分成两步独立的操作:

 

1.将这封需移动的邮件从A邮件箱复制到B邮件箱。

 

2.将这封邮件箱打上删除标记后从A邮件箱中彻底删除。

 

如果客户在我们系统中对A邮件箱设置禁止客户端删信,则第一步复制操作成功,第二步删除操作失败,foxmail7.2.18版会认为整个移动邮件操作失败,然后永远不停地不断重复移动操作,这样就会导致移动的这份邮件不停重复复制到B邮件箱,而又无法在A邮件箱中删除。如果需要移动的邮件越多,重复的邮件量则越大。除了用户手动移动邮件外,foxmail的邮件过滤器也会执行移动操作,如果客户在foxmail设置了一个移动邮件过滤器规则,每收到一封邮件,过滤器就不停重复移动这封邮件,如果收到的邮件数很多,则重复邮件量非常大,客户的邮箱容量很容易占满。当然,foxmail在7.2.18版之前不存在不停重试移动操作的情况,我们也将此问题提交给foxmail,相信foxmail以后会解决此问题,并且使这款广受大众欢迎的产品越做越完善!

 

 

二、foxmail客户端过滤器设置说明

 

 

客户在foxmail中设置过滤器来对邮件进行移动操作,如下图设置:

 

 

 

 

点击foxmail右上角设置图标,在下拉框中选择“工具”->“过滤器”,会显示“过滤器”设置框,在这个设置框中点击新建规则,我们比如新建一个如下规则:

 

 

 

 

我们设置了一个foxmail收到邮件后将此邮件无条件移动到垃圾箱的规则(当然您也可以设置符合某些条件然后移动到您指定的邮件箱中)。这样所有接收到的邮件一定都会移动到垃圾箱。

 

 

三、我们系统禁止客户端删信设置

 

 

在我们邮件页面中,点击导航条中的“设置”->"目录管理",然后对收件箱设置禁止客户端删信,如下图:

 

 

 

 

上图中,在收件箱中勾选“禁止客户端删信”,这样就完成禁止foxmail之类客户端在收件箱中进行删信操作。

 

 

四、问题再现

 

 

根据上面第二、三章的设置,当用户收到一封邮件进收件箱后触发foxmail的过滤器规则,将这封邮件尝试移动到垃圾箱,foxmail复制这封邮件到垃圾箱成功,然后删除收件箱中此邮件发生错误(因为第三章设置了收件箱禁止客户端删信),foxmail则认为整体移动邮件失败,然后开始永不停歇的重试。最终导致复制到垃圾箱中的相同邮件重复,而收件箱又无法删除邮件。

 

 

五、我们处理方式

 

根据此问题,我们会定期监控foxmail此行为,如果出现上述问题,会对用户邮件箱中的重复邮件进行去重(相同邮件内容只保留一封),并且自动关闭用户禁止客户端删信设置。

 

<