Home > imap_archiver

imap_archiver

Imap_archiver is a project mainly written in Ruby, based on the MIT license.

Tool to archive lots of messages in an imap server

= imap_archiver

imap_archiver is a command line tool to archive messages on an imap server. You tell it what folders to archive and where to archive it. For every folder that is archived a series of folders (one for each month) is created inside the archive folder.

== Installing gem install imap_archiver

== Configuration

Create a configuration file in ~/.imap_archiver.rb

ImapArchiver::Config.run do |config| config.imap_server = 'imap.example.com' config.username = 'jellehelsen' config.password = "secret" config.folders_to_archive = ["Shared Folders/Support" "Shared Folders/Backuplogs" "Shared Folders/Info"] config.archive_folder = 'Archive' config.base_folder = 'Shared Folders' # part to strip of source folder name to get archive folder name config.archive_folder_acl = {'jelle' => 'lrswpcd'} end

== How it works

imap_archiver works by moving messages that are older then 3 months and that have been read and not flagged to a different folder. This helps in cleaning out public folders that get too big to work with.

Consider the following folder structure:

  • Shared Folders
    • Support
    • Backuplogs
    • Info

Given the configuration above, this would be archive as such:

  • Archive
    • Support
      • Mar 2010
      • Apr 2010
      • ...
    • Backuplogs
      • Mar 2010
      • Apr 2010
      • ...

== Known bugs

The documentation is sparse to non-existing. It has only been tested against my own cyrus-imap server and a dovecot test server. For all unknown bugs: file an issue report! Creating a patch yourself helps in getting it fixed quickly.

== TODO

  • Make the archive period configurable
  • Make the archive folder name configurable

== Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

== Copyright

Copyright (c) 2010 Jelle Helsen. See LICENSE for details.

Previous:a-website