How to avoid using Outlook for Mac (mostly)#
Mon, 06 Jan 2014 07:51:17 +0000
New Year's Resolution number 2 (number 1 is domestic) is, taking inspiration from Neil Gaiman, to spend less time on Twitter and more time on long-form - or at least, paragraphs-long-forms - of writing. So to ease myself in gently, here's a plug for DavMail
It might be overstating the case slightly to claim that one of the worst things about working at $JOB is that everyone has to use Outlook, but it's certainly not one of the better things. So, having a spot of time between Christmas and the New Year to improve my working environment, I started looking for other ways to address the Exchange server.
Step 1 was to install DavMail
DavMail is a POP/IMAP/SMTP/Caldav/Carddav/LDAP exchange gateway allowing users to use any mail/calendar client (e.g. Thunderbird with Lightning or Apple iCal) with an Exchange server, even from the internet or behind a firewall through Outlook Web Access.
This bit went smoothly.
(Step 1.1 was to Paypal the DavMail author a small amount of cash: this is already making my work environment so much nicer)
Step 2: install and configure offlineimap. It would be neat if using
offlineimap didn't require one to learn Python (folder filtering
syntax, I am looking at you) but I told it my 'remote' server was
reachable at localhost:1143
and cargo culted some stuff to drop all
the boring folders full of crap, and off it went (very slowly)
downloading my mail. This is approximately how my .offlineimaprc
looks:
[general] accounts = Exchange[Account Exchange] localrepository = Local remoterepository = Remote status_backend = sqlite
- minutes between refreshes quick = 30
- partial refreshes between full ones
[Repository Local] type = Maildir localfolders = ~/SB-Mail
[Repository Remote] folderfilter = lambda folder: folder not in ['Trash','Drafts', 'Junk'] and not re.search("INBOX/20\d\d$", folder) and not re.search("^Trash/", folder) type = IMAP remotehost = localhost remoteport = 1143 remoteuser = mydomain\myusername remotepass = mypassword
mydomain
, myusername
and mypassword
are placeholders: make the
obvious substitutions.
Step 3: Gnus. Point it at the local folder that offlineimap is talking to, and tell it to use davmail via smtpmail for sending outgoing messages:
(setq gnus-select-method '(nnmaildir "sb" (get-new-mail nil) (target-prefix "") (directory "~/SB-Mail/"))).authinfo(setq user-mail-address "my.email.address
my.place.of.work.co.uk") (setq smtpmail-smtp-server "localhost") (setq smtpmail-smtp-service 1025) (setq smtpmail-auth-credentials "~/.authinfo")
looks like this
machine localhost login mydomain\myusername password mypassword port 1025
Again, replace
my*@ with actual valuesStep 4: Oh but, dear Lord, this thing could not find an uglier way to
render HTML email, what's up with that? Turns out this is because the
Emacs app in Homebrew wasn't built with libxml support. Turns out
this is because the bundled libxml in MacOS Lion (other Bloodthirtsy
Yet Cuddly Big Cats are available) is missing the file that
pkg-config
needs so that any app that might want to build against it
can find it. So:
Step 3.9: Building your own Mac Emacs is surprisingly easy - just
follow the instructions in nextstep/INSTALL
- but unless you take steps
to make libxml show up, the resulting app will suffer the same problem
as Homebrew's binary. So:
Step 3.8 Install the homebrew libxml package, and (2) add the .pc
file it provides to PKG_CONFIG_PATH
, because - as it doesn't want to
clash with the broken builtin libxml - it installs into some obscure
out-of-the-way place that nobody will ever find it. "I eventually had
to go down to the Cellar
". "Yes, Mr Dent, that's the display
department".
$ pkg-config --cflags libxml-2.0 Package libxml-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libxml-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'libxml-2.0' found $ PKG_CONFIG_PATH=/opt/boxen/homebrew/opt/libxml2/lib/pkgconfig/ pkg-config --cflags libxml-2.0 -I/opt/boxen/homebrew/Cellar/libxml2/2.9.1/include/libxml2
Your Pathnames May Vary. You get the idea. When is Macos Shaved Yak planned for release?
But after all that, it Just Works. Mostly. Sometimes it complains
that files go missing, but I think that's because I'm still checking
mail occasionally (so causing them to be marked as read) in Outlook
and this makes them jump from new/
to cur/
. And I haven't yet
figured out how to deal with calendaring or contacts, but the former
is a minor annoyance and the latter is probably just a matter of
finding a way to make Gnus talk LDAP to the LDAP proxy in DavMail
Anyway, Happy New Year. Mine will be.