Most of the hosting providers these days provide for IMAP access to your mailbox.
This is great, but what if you want to move messages from one IMAP account to another?
We wrote this little tool for it: imap-move.
The IMAP Move tool was written with a few, very specific, intended purposes but there could be others.
- Archive messages from IMAP into a local directory
- Move message from one Mailbox to another Mail Account
The tool keeps track of the moved message (by mail message ID) so it can be run over and over on the same source mailbox w/o having to repeat it’s work – this can save time when you have 40k+ messages.
List the Source Folders/Labels
imap-move.php -s imap-ssl://user@domain:email@example.com:993/ --list Source: user@domain 01 Follow up; 0 messages 0 bytes 02 INBOX; 1080 messages 108104263 bytes 03 Misc; 0 messages 0 bytes 04 Priority; 0 messages 0 bytes 05 [Gmail]; skip [container only] 06 [Gmail]/All Mail; skip [skip list] 07 [Gmail]/Drafts; skip [skip list] 08 [Gmail]/Sent Mail; skip [skip list] 09 [Gmail]/Spam; skip [skip list] 10 [Gmail]/Starred; skip [skip list] 11 [Gmail]/Trash; skip [skip list] 11 Folders, 1080 messages, 108104263 bytes
Copy to Local Directory
Please note, this is not a MAILDIR (or, at least I don’t think it is)
imap-move.php -s imap-ssl://user@domain:firstname.lastname@example.org:993/ --copy /path/to/storage
Copy one IMAP Account to Another
This can take a long time, the application has a lot of spew, maybe use
|tee or something.
imap-move.php -s imap-ssl://user@domain:email@example.com:993/ -t imap-ssl://noob@domain:firstname.lastname@example.org:993/ --move --copy