Back up Email with a Single Command

Productivity Sauce
The Web is awash with tutorials on how to back up your email. Strangely, none of them covers probably the easiest and most efficient email backup system based on the excellent IMAP Grab utility. This tiny Python script acts as a user-friendly wrapper for the getmail tool. Using the script, you can set up a fool-proof email backup solution using just a single command.
Deploying the IMAP Grab backup solution is a cinch. First off, install the getmail package using your distro's package manager. Download then the latest IMAP Grab package, unzip it, and move the imapgrab.py file to the directory of your choosing. Make the script executable using the chmod +x imapgrab.py command.
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.
Comments
comments powered by DisqusSubscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.
News
-
Arch Linux 2023.12.01 Released with a Much-Improved Installer
If you've ever wanted to install Arch Linux, now is your time. With the latest release, the archinstall script vastly simplifies the process.
-
Zorin OS 17 Beta Available for Testing
The upcoming version of Zorin OS includes plenty of improvements to take your PC to a whole new level of user-friendliness.
-
Red Hat Migrates RHEL from Xorg to Wayland
If you've been wondering when Xorg will finally be a thing of the past, wonder no more, as Red Hat has made it clear.
-
PipeWire 1.0 Officially Released
PipeWire was created to take the place of the oft-troubled PulseAudio and has finally reached the 1.0 status as a major update with plenty of improvements and the usual bug fixes.
-
Rocky Linux 9.3 Available for Download
The latest version of the RHEL alternative is now available and brings back cloud and container images for ppc64le along with plenty of new features and fixes.
-
Ubuntu Budgie Shifts How to Tackle Wayland
Ubuntu Budgie has yet to make the switch to Wayland but with a change in approaches, they're finally on track to making it happen.
-
TUXEDO's New Ultraportable Linux Workstation Released
The TUXEDO Pulse 14 blends portability with power, thanks to the AMD Ryzen 7 7840HS CPU.
-
AlmaLinux Will No Longer Be "Just Another RHEL Clone"
With the release of AlmaLinux 9.3, the distribution will be built entirely from upstream sources.
-
elementary OS 8 Has a Big Surprise in Store
When elementary OS 8 finally arrives, it will not only be based on Ubuntu 24.04 but it will also default to Wayland for better performance and security.
-
OpenELA Releases Enterprise Linux Source Code
With Red Hat restricting the source for RHEL, it was only a matter of time before those who depended on that source struck out on their own.
This is the main site
Download
Restore
small mistake
IMAP Grab GUI