E-mail: See it here, see it there, with Sync Mail Dir
You may not be able to be in two places at once, but there’s no reason your e-mail can’t be. The Sync Mail Dir tools let you synchronize a pair of mailboxes in maildir format across a network over a Secure Shell (SSH) link, so you can have all your messages available in two places. It’s similar to the Maildirsync utility in design and requirements, but more efficient, and while that program hasn’t been updated in more than five years, Sync Mail Dir’s newest version was released just last week.
To use Sync Mail Dir, you must install the software on both a remote host and a local client, and have access to SSH on both. You won’t have any use for this software if you use a browser-based mail client, and you can’t use it with a web-based message service such as Gmail. But if you want to synchronize your laptop mailbox with your desktop’s, or your workstation with the remove server to which your mail is delivered, Sync Mail Dir can synchronize a 1GB maildir in just a few seconds. The latest version adds a persistent-ssh-connection hook that allows you to reuse an existing SSH connection to the host you are synchronizing with.
In building the software, Italian developer Enrico Tassi says, “I wanted to choose the right tools for the right tasks. Some mechanisms need to be fast, so I wrote them in C, trying to benefit from POSIX/Linux features directly. Other components are just policies, so I wanted them to be written in simple languages. I chose Lua because I’m fluent in it, and because it has a light installation requirement. (Yes, Python and Perl are by default installed in almost every Unix system nowadays, and I could have used them, but I like Lua more.) Other components just glue the others together, and since all the pieces are designed to communicate using standard input/output, the language of choice to bring them together was shell script. To obtain a flexible and secure connection between the hosts, SSH was the obvious choice.
“Finally, I created an eye-candy GNOME applet using Vala. Though it’s a new language, Vala works smoothly with all the GNOME stack, gives you an object-oriented API over GTK+, and has handy constructs for callbacks. It has other nice features, but they are not relevant for my usage. I decided to use Git as the version control system mainly to get used to it. Now I really appreciate the choice, but the size of the project is not going to stress any VCS.”
Tassi says the software is pretty feature-complete, but “I’d love people to test it and tell me about bugs, inefficiencies, or other shortcomings in their setups that may not be visible in mine.” Until he hears from users, he just has some housekeeping tasks on his to-do list, including reviewing the documentation.
