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

(New page: = 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 ...)
 
Line 1: Line 1:
= How to move mail messages from one user's mail folder to another user =
= How to move mail messages from one user's mail folder to another user =
== (or to send them to external delivery) ==
(or to send them to external delivery).
 
* First you need to identify zimbra store folder of this user, like
* First you need to identify zimbra store folder of this user, like



Revision as of 16:32, 20 August 2008

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