maildir消息的文件名邮箱.Maildi

2024-03-29 14:29:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我怎样才能安全地找到Maildir消息的完整文件名和路径,希望使用标准的python工具。 我想在删除邮件之前将其写入tarfile。在

我正在导入邮箱和tarfile(++)

上下文:

maildir列表(从文本文件创建)

在maildir上循环(简化),在要删除的邮件上创建一个列表,函数将获取邮件列表,然后一个接一个地将电子邮件附加到tarfile中,然后删除电子邮件。在

import mailbox
# Creating the list
for maildir in maildir_list
    inbox = mailbox.Maildir(maildir, factory=None, create=False)
      # Looping over folders, if (folder = Trash)
    for key,msg in inbox.iteritems():
        my_list.append(maildir, inbox, key, foldername

然后在列表中循环以将邮件附加到tarfile并删除(丢弃)它们。在

^{pr2}$

我搜索过python文档中的邮箱和电子邮件,搜索了google、stackoverflow等。 现在我使用的是使用\u maildir、\u foldername、\u key和get_info()构建路径和文件名。在

编辑: 根据t-8ch的评论,我做了如下调整:

for _maildir, _box, _key, _foldername in __my_list:
    try:
        __file = _box._toc[_key]
        __file_name = "%s/.%s/%s" % ( _maildir, _foldername, __file )
    except Exception as inst:
            error_type = type(inst) # Type Exception, inst.args, inst
            log_text = "%s\: ERROR with %s/.%s - %s - %s" % (error_type, _maildir, _foldername, _key, inst)
            log_this( logKeySub, log_text )
            e.write(log_text + "\n")
            continue

一次试运行证明它工作得很好。在


Tags: keyinlog列表for电子邮件type邮件
1条回答
网友
1楼 · 发布于 2024-03-29 14:29:03

您可以使用Maildir._toc。这是一个字典,将邮件的关键字映射到相应文件的路径。此词典是在Maildir._refresh()中构造的。这允许延迟邮件文件的读取,从而减少刷新所有邮件列表的时间(这种情况经常发生)。在

(我确实在来源中找到了这个)

相关问题 更多 >