Email servers are so complex to manage that I can’t really justify running my own. Still I do. Unfortunately, there’s a known bug in the old version of SquirrelMail that’s available for Ubuntu Hardy that causes your inbox to be emptied sometimes when you try to empty your trash. Yeah, it’s quite a bug.
So this happened (again) and I needed to recover it. My hosting company does daily image of my machine, so the best I could do was recover the email from midnight before the day it dropped. Still that’s 741 messages, so it needs to be recovered.
I restored the backup image to a new server as step number one. This allowed me access to the messages without affecting anything else on my server.
Then I installed fetchmail and read up on how to use it. After some mistakes (that caused 100+ bounce messages) I got the mail transferred, with a couple issues. All messages came marked as ‘unread’ and when I ran it twice (because I made mistakes) the messages got doubled. I’m sure there are options to address this but I got the job done.
Here’s the fetchmail command to do this.
fetchmail -v -a -k -p IMAP \ -u user\@example.com \ --smtpname user\@example.com \ 111.222.333.444
The IP address is the image that’s hosting the backup from the day before the loss.
The parameter to -u is the login username on that image. In this case, I have virtual mail configured for IMAP so the login is the full email address.
The parameter to –smptname is the email address to send the email to on the new server. This is critical because if you don’t add this, it will send everything to your own account at localhost. Which may cause 100+ bounce messages if that’s not a valid address. Just saying.