Lately I’ve been playing around with mutt, a “small but powerful text-based email client for Unix operating systems” and offlineimap, a software that downloads your mailbox as a local Maildir.
After I finally got everything set up (easier said than done), I needed a way to make offlineimap synchronize my mailbox periodically. Apple recommends using launchctl instead of crontab. The following example shows how to run offlineimap in quiet mode every two minutes:
<?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"> <plist version="1.0"> <dict> <key>Label</key> <string>com.kimgrytoyr.offlineimap.plist</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/offlineimap</string> <string>-u</string> <string>quiet</string> </array> <key>StartInterval</key> <integer>120</integer> </dict> </plist>
This file is basically an XML file, but the extension you must use is
.plist. You would typically call it something like com.yourname.scriptname.plist. Place it in the folder
~/Library/LaunchAgents/, and make sure you replace yourname and scriptname with something relevant.
When you’ve saved the file to the specified location, type the following to load it into launchctl:
launchctl load ~/Library/LaunchAgents/com.yourname.scriptname.plist
If you ever need to remove it from launchctl, you can type the following:
launchctl remove ~/Library/LaunchAgents/com.yourname.scriptname.plist
You can verify that this post was written by me by pasting the signature into keybase.io/verify.