﻿Back up Email with a Single Command

Productivity Sauce

Mar 03, 2011 GMT
Dmitri Popov



To make sure that the script works properly and to obtain a list of the available mailboxes, run the following command in the terminal:

./imapgrab.py -l -s imap.mail.server -u username -p password

Replace imap.mail.server, username, and password with the actual mail server address and your login credentials. The -l (or --list) argument instructs the script to fetch a list of IMAP folders on the specified email account. If everything works as it should, the command should return a list of the available mailboxes.

Now you can construct a command to back up emails. It may look something like tihs:

./imapgrab.py -d -v -M -f /home/user/emailbackup -s imap.mail.server -u username -p password -m "_ALL_,-INBOX.Trash,-INBOX.Junk Mail"

The -d (--download) argument instructs the script to download messages, while the -f (--folder) argument specifies the destination directory. By default, the script downloads emails in the Mbox format which stores all messages in a single file. However, IMAP Grab supports the Maildir format, too, and you can force the script to use this format by adding the -M (--maildir) argument.

IMAP can also handle SSL connections, and you can use the -S (--ssl) and -p (--port) arguments to enable this feature:

./imapgrab.py -l -s imap.mail.server -S -p 993  -u username -p password

The -m (--mailboxes) argument lets you specify which IMAP folders you want the script to back up. The _ALL_ switch instructs the script to download all the available folders. To exclude certain folders from the backup, use the minus (-) character followed by the name of the mailbox you want the script to omit. So the -m "_ALL_,-INBOX.Trash,-INBOX.Junk Mail" argument instructs the script to download all folders except INBOX.Trash and INBOX.Junk Mail.

Finally, when you run the script for the first time, you might want to add the -a (-all) argument which forces IMAP Grab to download all messages.

That's all there is to it. To perform backup on a regular basis, set up a cron job, and you are done.


  • This is the main site

  • Download

    Can't seem to download at all today, even mirrors don't seem to work.
  • Restore

    Backup is not very useful unless there also is a restore. If the server goes up in flames you would probably want your mail back on the server so that it was searchabe, forwardable,... This article doen't mention how this is done.
  • small mistake

    The Port option is -P (a capital P).
  • IMAP Grab GUI

    Worth mentioning that IMAP Grab bundles a simple GUI with Gmail presets. It's great work...
comments powered by Disqus

Issue 159/2014

Buy this issue as a PDF

Digital Issue: Price $9.99
(incl. VAT)