+Save that script somewhere in your `${PATH}`, make it executable,
+and change the invocation of `iceweasel` to any other HTML viewer if
+necessary. Then within the emacs client, press '|' to pipe the
+current message, then type "view-html".
+
+Keith mentions the following caveat, "Note that if iceweasel isn't
+already running, it seems to shut down when the script exits. I
+don't know why."
+
+## 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 supports several accounts 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.
+
+If you have a hard time getting the above to work for you, as I did,
+it's also possible to add a message-send-mail-hook in your .emacs to
+send the from header explicitly as an argument to msmtp as described
+[here](http://www.emacswiki.org/cgi-bin/wiki/GnusMSMTP#toc2) on the
+emacswiki.
+
+
+## <span id="address_completion">Address completion when composing</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://commonmeasure.org/~jkr/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
+
+You can perform tab-completion using either of these programs. Just add the following to your .emacs:
+
+ (require 'notmuch-address)
+ (setq notmuch-address-command "/path/to/address_fetching_program")
+ (notmuch-address-message-insinuate)
+
+
+## How to sign/encrypt messages with gpg
+
+Messages can by signed using gpg by invoking `M-x
+mml-secure-sign-pgpmime` (or `M-x
+mml-secure-encrypt-pgpmime`). These functions are available via the
+standard `message-mode` keybindings `C-c C-m s p` and `C-c C-m c
+p`. To sign outgoing mail by default, use the `message-setup-hook`
+in your `.emacs` file:
+
+ ;; Sign messages by default.
+ (add-hook 'message-setup-hook 'mml-secure-sign-pgpmime)
+
+This inserts the required `<#part sign=pgpmime>` into the beginning
+of the mail text body and will be converted into a pgp signature
+when sending (so one can just manually delete that line if signing
+is not required).