Offlineimap
I use offlineimap to sync my email to a local maildir. This allows me to use intermittent connectivity to pull my email. Treating email in this manner is more akin to how email was done before ubiquitous broadband connectivity: connect, pull, disconnect. Back then, POP3 was te popular protocol but this wasa pull-only protocol. There was no mechnism for really pushing changes to mailboxes back to the remote server. Today, we use IMAP which is bidirectional; changes made locally can sync remotely. The new workflow now looks like this: connect, sync, disconnect, do stuff, connect, sync, disconnect. A typical IMAP client more or less assumes that you have an active Internet connection at all times; actions done in the interface are synchronously made against the server. My goal of reducing the reliance of persistant connectivity, howeer, demanded a method more akin to the old POP3 method. Offlineimap does this for me.
Offlineimap is configured to connect to a remote IMAP server and download the messages to a local maildir. It is independant of your email client. This allows the end user to configure any mail client to the local maildir, freeing it from a reliance on the network and instead causing it to perform email operations against a local filesystem. Offlineimap is then used periodically to synchronize these local changes to the remote server and pull down anything new. This type of interaction is ideal for someone without a persistant connection to the internet or on a slow or high latency connection such as dial-up or satellite. Such slow connections can make a local mail application feel sluggish as each action would normally need to perform a network operation before returning control the user.