码迷,mamicode.com
首页 > 其他好文 > 详细

POP3服务Stat()返回邮件数不准确的问题及解决

时间:2021-05-24 09:55:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:网上   替代   访问   设置   登录   lib   服务   没有   下载   

近两天用Python调用poplib模块从邮箱下载邮件附件做数据处理,发现了一个意外情况,pop3的stat()返回的邮件数跟预期有很大差距。邮箱里明明有1500+邮件,stat()和list()返回的数量却只有800+。网上搜了一圈,发现有碰到类似情况的,但没有提到原因及解决方案。不得已,自己做了一下研究,最终解决了问题,分享如下。

场景:126.com的邮箱

1)首先,代码能下载部分邮件附件,说明不存在代码本身问题;

2)其次,查看了pop3的协议介绍,确认使用stat()和list()方法没有问题,并且没有其它替代方案;

3)观察访问到的邮件,发现都是特定日期之后的,那个日期之前邮箱里虽然也有邮件但是没有访问;

4)按照3)的发现作出猜测,是否邮件服务商做了限制只能下载特定时长的邮件?为验证想法,登录邮箱Web界面,从最新的邮件倒推800+封,发现日期截止在1个月前,猜测得到证实;

5)查看邮箱相关设置,发现有126邮箱的POP3/IMAP/SMTP设置下有个“默认收取最近30天的邮件”选项是打钩的,还有一个选项是“收取全部邮件”,果断修改为“收取全部邮件”;

6)重新执行python代码,stat()跟list()的返回符合预期;

7)重新改回“默认收取最近30天的邮件”,第一次处理完了全部存货,以后只收取最近30天可以减少后续的数据处理量量,提高处理效率,也为服务方节省资源。

Note:如果有人在使用其它邮箱时碰到类似问题,原因可能一样,解决方案可能也类似。

POP3服务Stat()返回邮件数不准确的问题及解决

标签:网上   替代   访问   设置   登录   lib   服务   没有   下载   

原文地址:https://www.cnblogs.com/RobZH/p/14770497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!