我意识到有许多库可以从 Java、Python 等中访问 IMAP。但我想做的是非常具体的,并且与大多数 imap 示例相反。
简单的部分:
- 给定 IMAP 服务器、登录名和特定文件夹名称
- 核对该文件夹中的所有邮件(或者核对文件夹,如果这样更容易或更有效?)
非典型部分:
- 每 N 次删除后进行一次删除
- 包括一些重试和批量大小逻辑,以便繁忙的服务器 - 甚至每个会话删除和删除 100 条消息都会有所帮助。
- 不要下载所有标题!
最后一点是个问题。我尝试过的每个电子邮件客户端都在下载 20,000 个电子邮件标头时感到窒息——我不需要看到这些。
使用 POP3 脚本,我刚刚给出了顺序 ID,1、2、3 ...
但是我看到的每个 IMAP 示例似乎都使用了从标题中获取的某些字段。所以也许删除 IMAP 消息需要一个你猜不到的 ID?(只能通过查询获得?)
如果我确实需要获取标题,至少可以尽可能紧凑吗?还是让我一次只做100个?
或者,我尝试通过电子邮件客户端 UI 删除整个文件夹,但这似乎不起作用。我认为它试图首先将所有标题移动到垃圾箱,但失败了,所以永远不会进入删除部分。所以我不确定删除文件夹实际上是否比删除其内容更有效。
任何想法表示赞赏。我通常使用 Java 或 Python 工作,但我很灵活。我认为这是一个协议问题,而不是图书馆问题。