I'm trying to delete some messages from a mailbox when they are older
than a certain number of days. 

If I iterate through the mailbox and find a message that needs
deleting how do I get its key so I can do "remove(key)"?

The trouble is that, as the documentation says: "The default Mailbox
iterator iterates over message representations, not keys as the
default dictionary iterator does." So if you try something like:-

    for f in os.listdir(junkdir):
        mbxPath = os.path.join(junkdir, f)
        mbx = mailbox.mbox(mbxPath, factory=None)                 
        mbx.lock()  
        for k, msg in mbx:  
            if <something is true>
                msg.remove(k)
        mbx.flush() 
        mbx.unlock() 

Then you get an exception on "for k, msg in mbx" which is an attribute
error, presumably because a mailbox isn't a 'real' iterator. So how,
do I get that key value?

-- 
Chris Green
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to