- LuKreme kremels@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=tlx@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 ]'