* LuKreme <krem...@kreme.com> 2013.08.16 20:15: > MDM is only invoked if the target folder doesn't exist. For example, for this > list the current target folder is .zz.dovecot.2013. Next year, it will change > to .zz.dovecot.2014 > > (the .zz is because iOS mail does't support unsubscribing from mailboxes and > doesn't let you collapse folders, so the zz puts these archive folders way at > the end.)
Here's a script I wrote to archive old mail using doveadm. It should be simple enough to tweak it to your needs. Basically you call it with a mailbox name and it will archive all mails before a certain date. Source and Destination Path are in the script code: dovearchive.sh: #!/bin/bash # Archive old posts before certain date to 'Public/Archive/Mailbox/Year' # Set basic parameters accordingly: # archive=2011, before_date=$year-mm-dd # source_mailbox_base=Public/Newsletters # dest_mailbox_base=Public/Archive/Newsletters # Actual Mailbox is read from command line set -e archive=2012 let year=$archive+1 before_date=$year-01-01 mailbox_owner=t...@leuxner.net source_mailbox_base='Public/Newsletters' dest_mailbox_base='Public/Archive/Newsletters' #acl_admin_group=owner acl_admin_group='group=PublicMailboxAdmins' acl_unlock_seq="$acl_admin_group delete expunge insert lookup post read write write-seen write-deleted" acl_lock_seq="$acl_admin_group insert lookup post read write write-seen" acl_lock_archive="$acl_admin_group insert lookup read write write-seen" msg_formatted() { echo "$(date "+%b %d %H:%M:%S") $*" } if [ $# -eq 0 ]; then echo "usage: $0 mailbox" >&2 exit 1 fi # Mailbox exists? doveadm acl get -u $mailbox_owner "$source_mailbox_base/$1" || { echo 'Mailbox not found.'; exit 1; } # Create New Archive Mailbox doveadm mailbox create -u $mailbox_owner "$dest_mailbox_base/$1/$archive" # Modify ACL, expunge mail and revert ACL msg_formatted "[>] Archiving \"$dest_mailbox_base/$1/$archive\"" doveadm acl set -u $mailbox_owner "$source_mailbox_base/$1" $acl_unlock_seq doveadm move -u $mailbox_owner "$dest_mailbox_base/$1/$archive" mailbox "$source_mailbox_base/$1" before $before_date doveadm acl set -u $mailbox_owner "$source_mailbox_base/$1" $acl_lock_seq doveadm acl set -u $mailbox_owner "$dest_mailbox_base/$1/$archive" $acl_lock_archive msg_formatted '[ Complete ]'
signature.asc
Description: Digital signature