Backup GMAIL with FetchMail
If you’re anything like me you really enjoy GMail but you really enjoy the peace of mind and comfort in having a local copy of your email available at all times. I tend to not rely heavily on services provided by third party providers, even Google. What if I am offline? What if they have a long outage and I need access to my mail? As a society, we rely heavily on mail… probably more than we really know. Think about it: When was the last time your companies mail server went down? Global anarchy, chaos and fires result.
In this tutorial I will install, configure and run fetchmail to retrieve my messages over POP on a CentOS server.
Backing up GMail
Here we go 🙂
1. Check to make sure fetchmail is installed on your system.
# rpm -aq | grep fetchmail
If fetchmail is installed you will see the package returned. If not, issue this command in CentOS:
# yum -y install fetchmail
2. Good, now we have fetchmail installed. Let’s verify by using this command:
# fetchmail -V | grep release
This is fetchmail release 6.2.5+IMAP-GSS+RPA+NTLM+SDPS+SSL+INET6+NLS
3. Let’s create a user which will keep our gmail backup.
# adduser gmailbackup
4. Let’s create a fetchmail configuration file called ".fetchmailrc" in your current users home directory.
# vi ~/.fetchmailrc
5. In this file enter the following substituting your credentials where necessary:
poll pop.gmail.com with proto POP3 and options no dns
user ‘[email protected]’ there with password ‘yourpassword’ is ‘gmailbackup’ here options ssl
6. Now let’s set the permissions on the new .fetcmailrc file otherwise fetchmail will complain like this:
File /root/.fetchmailrc must have no more than -rwx–x— (0710) permissions.
To set these permissions use this command:
# chmod 710 ~/.fetchmailrc
7. Let’s fetch the mail with verbosity on.
# fetchmail -vk
8. Let’s verify the mail we downloaded
# mail -u gmailbackup
9. After this transfer let’s set up a cron entry to run a fetch every hour for safe keeping of our GMail.
# crontab -e
Add this to the bottom of your users cron:
0 * * * * root fetchmail -k &> /dev/null
The above redirects all output from fetchmail to /dev/null so we don’t get chatter in our local users mail box.
That’s it! You’re all done and being backed up. For easier viewing, assign a password to your local gmailbackup user with "passwd gmailbackup" and use a web client like RoundCube or SquirrelMail to view your GMail backup.