Tara sent me a link a few months ago about offlineimap, at a time when I was tinkering with an unrelated e-mail tool. I can say up front that I can see the potential in this.
If I understand it right, this would allow you to synchronize a remote mail directory — something like GMail, as above — to a local folder, and then use a traditional mail reader, like mutt, to … well … read your e-mail. 🙄
If that’s the case then I may have found a way around my usual need for a locally built e-mail system, and I can start whacking away at other e-mail tools that don’t really apply to Web-based services.
On the other hand, I’m not sure where offlineimap will help with sending e-mails, although I haven’t really worked much with it beyond what you see above. Science demands an answer.
Something tells me offlineimap has some sort of provision for that. It is, after all, 12 years old.
Sending or receiving, the first place to start would be (and was) the Arch wiki, which has plenty of sample configurations and a special one just for GMail accounts … which worked more or less perfectly for me. I’m such a copy-paster. 😳
Just for future reference, or if you want to tinker with offlineimap too, here’s what I used:
[general] # List of accounts to be synced, separated by a comma. accounts = gmail-remote [Account gmail-remote] # Identifier for the local repository; e.g. the maildir to be synced via IMAP. localrepository = main-local # Identifier for the remote repository; i.e. the actual IMAP, usually non-local. remoterepository = gmail-remote # Status cache. Default is plain, which eventually becomes huge and slow. status_backend = sqlite [Repository main-local] # Currently, offlineimap only supports maildir and IMAP for local repositories. type = Maildir # Where should the mail be placed? localfolders = ~/.mail [Repository gmail-remote] type = Gmail remoteuser = email@example.com remotepass = password nametrans = lambda foldername: re.sub ('^\[gmail\]', 'bak', re.sub ('sent_mail', 'sent', re.sub ('starred', 'flagged', re.sub (' ', '_', foldername.lower())))) folderfilter = lambda foldername: foldername not in '[Gmail]/All Mail' # Necessary as of OfflineIMAP 6.5.4 sslcacertfile = /etc/ssl/certs/ca-certificates.crt
You will, of course, have to adjust that to your liking. And I’m sure that could be streamlined a bit.
I can’t say if offlineimap is any better or worse than anything else available; I do see a lot of Remy’s NoPriv.py in this too though. Perhaps the two are not dissimilar.
I intend to come back and take a look at offlineimap again sometime soon. I can’t say for sure why — I just have a hunch that it will be useful in the months and years to come. 😐