- 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 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="sync_maildir_flags">**how to sync notmuch tags and maildir
- flags**</span>
-
- There is no built-in support for sunchronizing your notmuch tags
- with your imap maildir flags (seen, replied, trashed, etc). However
- there are currently 2 ways in which you can achieve
- synchronization. In order to sync new notmuch tags to maildir flags,
- there is a python tool called
- [notmuchsync](http://spaetz.github.com/notmuchsync/) that allows
- synchronization in either direction or pruning of deleted files.
-
- The second solution allows for fast maildir flag to notmuch tag
- synchronization (and only in that direction) requires patching the
- notmuch source code. The patch has been posted in this mail
- *id:1267450136-31749-1-git-send-email-Sebastian@SSpaeth.de* and can
- be viewed as a [source diff in this git
- repository](http://github.com/spaetz/notmuch-all-feature/commit/df3b087cefb85e9d16fd17540e348bcb854dd7ee).
-
-* <span id="address_completion">**how to get email address completion**</span>
- There are 2 solutions. Use "bbdb" which allows you to maintain a mail database and gives you mail address completion with the tab key.
-
- Alternatively, you use the notmuch database as a mail address book
- itself. You need a command line tool that outputs likely address
- candidates based on a search string. There is a python tool
- notmuch_address.py (which can be fetched with `git clone
- http://jkr.acm.jhu.edu/git/notmuch_addresses.git`) (slower, but no
- compilation required so good for testing the setup) or the
- vala-based addrlookup (faster, but needs compiling). This is how
- you compile the (3rd party) tool "addrlookup" to give you address
- completion:
-
- - you need the addrlookup binary, first of all. 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`. That should give you the binary that you can test already.
-
- - EUDC is integrated into emacs and can be used for tab completion
- of email addresses. The code I use is here
- http://gist.github.com/359425. It was announce in [this
- mail](http://mid.gmane.org/87fx3uflkx.fsf@jhu.edu)
- (id:87fx3uflkx.fsf@jhu.edu) which contains links to the git
- repositories which contain the files.
-
-* <span id="insert_user_agent">**how to insert a user agent header**</span>
-
- Sometimes it is good to let the world know which email client you use, so others know which quirks to expect. And it is no shame to let others know that you are way ahead of mail2.0. Notmuch is mail3.0 (at least)!
-
- [This mail](http://mid.gmane.org/87y6gtnkch.fsf@SSpaeth.de) (id:87y6gtnkch.fsf@SSpaeth.de) posted the below code, that -when inserted in your .emacs file- will add a User-Agent header (which is hidden during composing and in notmuch show, but which can be seen when viewing all headers of a mail). The header will looke like this:
- `User-Agent: notmuch version 0.1-92-g3893a9a (Emacs 23.1.1/x86_64-pc-linux-gnu)`
-
-
- ;; set the User-Agent string whenever we invoke message mode
- (add-hook 'message-mode-hook '(lambda()
- ;; check if User-Agent is a required header and set it if not
- (if (not (memq 'User-Agent message-required-mail-headers))
- (setq message-required-mail-headers
- (append message-required-mail-headers '(User-Agent))))
- ;; hide the User-Agent header if not already hidden
- (if (not (memq '"^User-Agent:" message-hidden-headers))
- (setq message-hidden-headers
- (append message-hidden-headers '("^User-Agent:"))))
- ;; create user agent string
- (let ((notmuch-user-agent (concat
- (substring (shell-command-to-string (concat notmuch-command " --version")) 0 -1)
- " (Emacs " emacs-version "/"
- system-configuration ")")))
- (setq message-newsreader notmuch-user-agent))
- ))
-
-
-* <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).
\ No newline at end of file
+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 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">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://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.
+
+## 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).
+
+Alternatively, you may prefer to use `mml-secure-message-sign-pgpmime` instead
+of `mml-secure-sign-pgpmime` to sign the whole message instead of just one
+part.