On Fri, Sep 29, 2017 at 07:02:07PM +0200, Chris wrote: > Background: Maildirs with mails older than five years should be > archived. The folder structure should be kept in the target.
Archived to what? > I was very surprised, that there seems no readily usable module > available. (In Perl neither). Reusable module to do what *precisely*? If you cannot explain what you need, how do you expect somebody to have anticipated your requirements and written a module to do it? > What's the best way to save them? Depends on what you are doing. But coding the paths in your source code is almost certainly not what you want to do. Surely you want to read the paths from the maildir itself, as it *actually* exists, rather than try to hard-code what you expect it to be in your source code? Have you looked at the contents of a maildir? Its actually an almost flat structure. Nested mail folders are not nested on the disk: a user's mail folder structure that looks like: inbox sent trash personal ├── family └── friends work ├── critical ├── important └── low is stored on disk as: Maildir/ ├── .sent/ ├── .trash/ ├── .personal/ ├── .personal.family/ ├── .person.friends/ ├── .work ├── .work.critical ├── .work.important └── .work.low (Not shown: the mails themselves, some dovecot specific data files in the top level, and the special cur/ new/ tmp/ subdirectories found in each mail directory.) So all you really need is to record the path to the top level maildir directories (the original, and the place where you are archiving them). The subdirectories, you read from the disk as you go. Actually, *you* don't read them at all. Have you looked at the mailbox module in the standard library? It supports Maildir. I expect that what you would do is something like: source = Maildir('path/to/source') archive = Maildir('path/to/archive') for each directory in source: for each mail in directory: if mail older than five years: copy mail to archive delete mail from source and let the mailbox module do the hard work. (Especially the part about copying the mail, since the module will ensure that the flags and dates are copied correctly.) -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor