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 imagecopy 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.

Leave a Reply

Your email address will not be published / Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.