+
+* **msmtp, message mode and multiple accounts**
+
+ As an alternative to running a mail server such as sendmail or
+ postfix just to send email, it is possible to use
+ [msmtp](http://msmtp.sourceforge.net/). This small application will
+ look like /usr/bin/sendmail to a MUA such as emacs message mode, but
+ will just forward the email to an external SMTP server. It's fairly
+ easy to set up and it support several account for using different
+ SMTP servers. The msmtp pages have several examples.
+
+ A typical scenario is that you want to use the company SMTP server
+ for email coming from your company email address, and your personal
+ server for personal email. If msmtp is passed the envelope address
+ on the command line (the -f/--from option) it will automatically
+ pick the matching account. The only trick here seems to be getting
+ emacs to actually pass the envelope from. There are a number of
+ overlapping configuration variables that control this, and it's a
+ little confusion, but setting these three works for me:
+
+ - mail-specify-envelope-from: t
+
+ - message-sendmail-envelope-from: header
+
+ - mail-envelope-from: header
+
+ With that in place, you need a .msmtprc with the accounts configured
+ for the domains you want to send out using specific SMTP servers and
+ the rest will go to the default account.
+
+* <span id="address_completion">**how to get email address completion**</span>
+
+ There are currently two solutions to this:
+
+ [bbdb](http://bbdb.sourceforge.net) is a contact database for emacs
+ that works quite nicely together with message mode, including
+ address autocompletion.
+
+ You can also use the notmuch database as a mail address book itself.
+ To do this you need a command line tool that outputs likely address
+ candidates based on a search string. There are currently two
+ available:
+
+ * The python tool notmuch\_address.py ('git clone
+ http://jkr.acm.jhu.edu/git/notmuch_addresses.git`) (slower, but
+ no compilation required so good for testing the setup)
+
+ * The vala-based
+ [addrlookup](http://github.com/spaetz/vala-notmuch) (faster, but
+ needs compiling). The addrlookup binary needs to be compiled.
+ Grab
+ http://github.com/spaetz/vala-notmuch/raw/static-sources/src/addrlookup.c
+ and build it with:
+
+ cc -o addrlookup addrlookup.c `pkg-config --cflags --libs gobject-2.0` -lnotmuch
+
+ EUDC is integrated into emacs and is needed for tab completion of
+ email addresses. See [this
+ mail](http://mid.gmane.org/87fx3uflkx.fsf@jhu.edu)
+ (id:87fx3uflkx.fsf@jhu.edu) for more information.
+
+* <span id="sign_messages_gpg">**how to sign/encrypt my messages with
+ gpg**</span>
+
+ You can manually sign your messages with gpg by invoking `M-x
+ mml-secure-sign-pgpmime` (or `M-x
+ mml-secure-encrypt-pgpmime`). These functions are available via the
+ convenient (*cough cough*) keybindings `C-c C-m s p` and `C-c C-m c
+ p` by default. To sign my outgoing mail by default, I use this hook
+ in my .emacs file:
+
+ ;;sign messages by default
+ (add-hook 'message-setup-hook 'mml-secure-sign-pgpmime)
+
+ This inserts the blurb `<#part sign=pgpmime>` into the beginning of
+ my mail text body and will be converted into a pgp signature when
+ sending (so I can just manually delete that line if I do not want a
+ mail to be signed).