How to move mail from one user's folder to another, or to send it for external delivery

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

How to move mail messages from one user's mail folder to another user

(or to send them to external delivery).

  • First you need to identify zimbra store folder of this user, like


        mysql -e "select * from zimbra.mailbox where comment like 'user@domain.com'"


  • Then you need to prepare file with a lot of lines, like 1/25+1 of number of messages in his folder needed to copy. If, for example, the messages from folder /test need to be moved, then this file should have the first line: "search 'in:test'" and all other lines: "search -n" (means "give next page of the search results"), like:


        search 'in:test'
        search -n
        search -n
        ....
        search -n


  • Then you feed this file to zmmailbox to get message IDs:


        zmmailbox -z -m user@impulse.net  messagelist.txt


  • And then we ready to get all the messages in the format ready to feed them to sendmail:


        for i in `grep '^[0-9]' messagelist.txt | awk '{print $2}' | sed 's/-//'`; do
          find /opt/zimbra/store/0//msg/ -name $i\* >> filelist.txt
        done
        for i in `cat filelist.txt`; do
          zmmailbox -z -m  am  $i;
        done


(if there are a lot of messages, it's better to create a file with lines "am $i" and to feed them to zmmailbox because it starts slowly.

  • If the messages should be sended to external domain, then the last step may be something like this:


     for i in `grep '^[0-9]' messagelist.txt | awk '{print $2}' | sed 's/-//'`; do
       find /opt/zimbra/store/0//msg/ -name $i\* >> filelist.txt;
     done
     for i in `cat filelist.txt`; do
       sendmail -i  <$i;  
     done
Jump to: navigation, search