目标是使用imaplib删除大量电子邮件.电子邮件文件夹每月收到大约300,000条新邮件.只应删除超过1个月的邮件.如果执行此脚本,它将删除旧消息,但删除需要花费大量时间,而且迭代操作简单无效.这需要几个小时.通过尝试通过多处理来提高速度会产生错误.
你有什么建议可以提高删除大量邮件的速度?
import sys
import datetime
from imaplib import IMAP4
# get the date a month from the current
monthbefore = (datetime.date.today() - datetime.timedelta(365/12)).strftime("%d-%b-%Y")
m = IMAP4('mail.domain.com')
m.login('user@domain.com', 'password')
# shows how many messages in selected folder
print m.select('Folder')
typ, data = m.select('Folder')
# find old messages
typ, data = m.search(None, '(BEFORE %s)' % (monthbefore))
# delete them
print "Will be removed:\t", data[0].split()[-1],"messages"
for num in data[0].split():
m.store(num, '+FLAGS', '\\Deleted')
sys.stderr.write('\rRemoving message:\t %s' % num)
# now expunge marked for …Run Code Online (Sandbox Code Playgroud)