繁体   English   中英

从网络邮件中删除邮件 - 不适用于所有文件夹

[英]Delete messages from webmail - not working on all folders

我正在使用以下代码从网络邮件中删除电子邮件:

def process_webmail():
    box = imaplib.IMAP4_SSL(server)
    box.login(username, password)
    print("Connected to webmail")
    _tuple = box.list()
    if len(_tuple) <= 0:
        return

    before_date = (datetime.date.today() - datetime.timedelta(30)).strftime("%d-%b-%Y") 
    for folder in _tuple[1]:
        _folder_name = folder.split('\"/\"')
                    
        f = _folder_name[1].strip().strip('\"')
        if f.lower() == "inbox":
            pass
        else:
            box.select(f)
            # typ, data = box.search(None, 'ALL')
            typ, data = box.search(None, '(BEFORE {0})'.format(before_date))
            if data != ['']:
                for num in data[0].split():
                    box.store(num, '+FLAGS', '\\Deleted')

    print(box.expunge())
    box.close()
    box.logout()

我们有两种类型的文件夹。 1)创建文件夹并将邮件手动复制到其中。 2) 过滤器应用于已复制的邮件。

上面的代码适用于 1,而电子邮件只是在 2 的情况下被标记为已删除。不确定是什么问题。 有人请帮助我理解这个问题。

Roundcube 是正在使用的网络邮件。

以下代码有效。 错位的 .expunge()

def process_webmail():
    box = imaplib.IMAP4_SSL(server)
    box.login(username, password)
    print("Connected to webmail")
    _tuple = box.list()
    if len(_tuple) <= 0:
        return
    
    before_date = (datetime.date.today() - datetime.timedelta(30)).strftime("%d-%b-%Y") 
    for folder in _tuple[1]:
        _folder_name = folder.split('\"/\"')
                       
        f = _folder_name[1].strip().strip('\"')
        if f.lower() == "inbox":
            pass
        else:
            box.select(f)
            # typ, data = box.search(None, 'ALL')
            typ, data = box.search(None, '(BEFORE {0})'.format(before_date))
            if data != ['']:
                for num in data[0].split():
                    box.store(num, '+FLAGS', '\\Deleted')
                box.expunge()
    
    box.close()
    box.logout()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM