I am now on a mutt + offlineimap setup for both my work and personal emails (love thy mutt), I will put a post later on why and how am I doing it, posting how to automatically run the offlineimap on a MacOSX (10.8) using Launchd.
Create a file in user’s LaunchAgents directory, the label naming convention that Apple uses a typically weird but okay as long as it works:
~/Library/LaunchAgents/org.abhinav.mail.abhinav.plist
My offlineimap plist file looks like this:
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">Label org.abhinav.mail.abhinav ProgramArguments /usr/local/bin/offlineimap -a AbhinavAbhinavOrg RunAtLoad StartInterval 60 TimeOut 180 StandardErrorPath /Users/abhinav/log/offlineimap_abhinav_error.log StandardOutPath /Users/abhinav/log/offlineimap_abhinav.log
Then run following to submit it to Launchd.
launchctl load ~/Library/LaunchAgents/org.abhinav.mail.abhinav.plist
In short, above plist file tells Launchd to start the offlineimap application with -a mailboxname argument every 60 minutes and start at load also, time it out if it’s running or stuck for more than 180 seconds and puts stdin and stderr in defined logs. Works beautifully for me.
I took help from here, here and Steve Losh’s guide to a homely mutt.
Thanks for this post. I have a similar setup but the launchd job doesn’t seem to survive when the computer goes to sleep. I tried to add
KeepAlive
NetworkState
but that didn’t seem to help. I’m on 10.9. Any ideas?
Wow. That markup didn’t quite work. I meant to type:
KeepAlive
NetworkState