This description assumes you installed the IPKG bootstrap on your NAS. A description in dutch can be found here.
This decribes how an IMAP mailbox can be backed up localy with a Gmail account. However, this method also can be used with all other providers who support IMAP and secure IMAP. Just combine the information from this article and the information of getmail (See bottom of this article.) and your ISP.
Login to your NAS as root and install getmail with these commands:
ipkg update ipkg install python ipkg install py25-getmail
Now that your have the software in place pick a place where the email should be stored. I choose
/volume1/Gmail but any folder that is accessible to your ordinary user will do. Still logged in as root issue these commands:
mkdir /volume1/Gmail cd /volume1/Gmail mkdir cur new tmp
The last one is necessary for the storage format (Maildir) and getmail doesn’t create these folders itself. Maildir stores each email in a separate file on the disk. If you want another storage format, read the getmail documentation.
You also need a local useraccount. This account will be used by getmail to retrieve the mail and store it locally. By design getmail refuses to use the rootaccount to retrieve. create an accoun and use it in the getmailrc. fill in the name where LOCALUSERNAME is stated in the example below. This user must have the appropiate rights on the
/volume1/Gmail folder and the folders below. (chmod -R 700)
Then create a file called
/volume1/Gmail/getmailrc with the following content, using your own username and password:
[retriever] type = SimpleIMAPSSLRetriever server = imap.gmail.com mailboxes = ("[Gmail]/All Mail",) # if you have a German account, use [Google Mail] like this # mailboxes = ("[Google Mail]/All Mail",) # From getmail version 4.28 and above you can use: mailboxes=ALL (Case sensitve!) # This version must be installed manualy. It is not provided in IPKG username = USERNAME@gmail.com password = USERPASS user = LOCALUSERNAME [destination] # save each email in a separate file type = Maildir path = /volume1/Gmail/ [options] verbose = 2 message_log = /volume1/Gmail/log # retrieve only new messages # if set to true it will re-download ALL messages every time! read_all = false # do not alter messages delivered_to = false received = false
Now everything is in place for getmail to do its work. Do a test run with the following command to test if it will run into any problems.
This will start downloading your messages but depending on the size of your email history will take up to a few hours. There is the distinct probability that your ssh connection will time out and drop due to your inactivity. That’s why I ran the first go with nohup so that me logging out wouldn’t stop the process.
nohup getmail -q --getmaildir=/volume1/Gmail & > /volume1/Gmail/nohup.out
Lastly, we obviously want to run getmail periodically and fetch the newest message so open up
/etc/crontab with a text editor like vim (you probably need to install it with ipgk first) and add the following line:
0 3 * * 3 root /bin/su -c "/opt/bin/getmail -q --getmaildir=/volume1/Gmail"
(It is important so separate the individual parts of the crontab with a tab not a space as otherwise the Synology will delete your entry when you reboot.)
This will run getmail every Wednesday at 3AM when you’re sound asleep. The
/bin/su complication is necessary because it appears that the Synology cron can’t run jobs as non-root.
Also, on my Synology you have to restart the cron daemon for it to pick up the changes with a
synoservice --restart crond
To get all the information of GetMail to finetune the getmailrc file, go to their website.