(require 'notmuch)
+or you can load the package via autoload:
+
+ (autoload 'notmuch "notmuch" "notmuch mail" t)
+
Then, either run "emacs -f notmuch", or execute the command `M-x
notmuch` from within a running emacs.
not close it. If you type several mails in an emacs session they will
accumulate and make switching between buffers more annoying. You can
avoid that behavior by adding `(setq message-kill-buffer-on-exit t)`
-in your `.emacs` file (or doing `M-x customize-variable<RET>
-message-kill-buffer-on-exit<RET>`) which will really close the mail
-window after sending it.
+in your `.emacs` file (or doing `M-x
+customize-variable<RET>message-kill-buffer-on-exit<RET>`) which will
+really close the mail window after sending it.
## Attaching files
Using the `M-x mml-attach-file` command, you can attach any file to be
-send with your mail. By default this command is bound to the menu item
-*Attachments--Attach File* with the key binding `C-c C-a`. The
+sent with your mail. By default this command is bound to the menu item
+*Attachments--Attach File* with the key binding `C-c C-a`. The
variable `mml-dnd-attach-options` (`M-x
-customize-variable<RET>mml-dnd-attach-options`) can be set to allow
-the prompting for various attachment options (such as
+customize-variable<RET>mml-dnd-attach-options<RET>`) can be set to
+allow the prompting for various attachment options (such as
inline/attachment) if you want to do that.
For those who prefer a more graphical interface, you can also simply
# Advanced tips and tweaks
+## Use separate emacs lisp file for notmuch configuration
+
+Instead of adding notmuch configuration code to `.emacs`, there
+is an option to collect those to a separate file (which is only
+loaded when `notmuch` is invoked). To do this, write, for example
+a file called `~/.emacs.d/my-notmuch.el`:
+
+ ;; my-notmuch.el -- my notmuch mail configuration
+ ;;
+
+ ;; add here stuff required to be configured *before*
+ ;; notmuch is loaded;
+
+ ; uncomment and modify in case some elisp files are not found in load-path
+ ; (add-to-list 'load-path "~/vc/ext/notmuch/emacs")
+
+ ;; load notmuch
+ (require 'notmuch)
+
+ ;; add here stuff required to be configured *after*
+ ;; notmuch is loaded;
+
+ ;(setq user-mail-address (notmuch-user-primary-email)
+ ; user-full-name (notmuch-user-name))
+
+ ; uncomment & modify if you want to use external smtp server to send mail
+ ; (setq smtpmail-smtp-server "smtp.server.tld"
+ ; message-send-mail-function 'message-smtpmail-send-it)
+
+Then, add to `.emacs`:
+
+ (autoload 'notmuch "~/.emacs.d/my-notmuch" "notmuch mail" t)
+
+
## Add a key binding to add/remove/toggle a tag
The `notmuch-{search,show}-{add,remove}-tag` functions are very useful
(notmuch-show-remove-tag "deleted")
(notmuch-show-add-tag "deleted"))))
+## Restore reply-to-all key binding to 'r'
+
+Starting from notmuch 0.12 the 'r' key is bound to reply-to-sender instead of
+reply-to-all. Here's how to swap the reply to sender/all bindings in show mode:
+
+ (define-key notmuch-show-mode-map "r" 'notmuch-show-reply)
+ (define-key notmuch-show-mode-map "R" 'notmuch-show-reply-sender)
+
+And in search mode:
+
+ (define-key notmuch-search-mode-map "r" 'notmuch-search-reply-to-thread)
+ (define-key notmuch-search-mode-map "R" 'notmuch-search-reply-to-thread-sender)
+
+
## How to do FCC/BCC...
The Emacs interface to notmuch will automatically add an `Fcc`
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:
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
+candidates based on a search string. There are currently three
available:
* The python tool `notmuch_address.py` (`git clone
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:
+ * Shell/fgrep/perl combination [nottoomuch-addresses.sh](http://www.iki.fi/too/nottoomuch/nottoomuch-addresses/).
+ This tools maintains it's own address "database" gathered from email
+ files notmuch knows and search from that "database" is done by fgrep(1).
+
+You can perform tab-completion using any of these programs. Just add the following to your .emacs:
(require 'notmuch-address)
(setq notmuch-address-command "/path/to/address_fetching_program")
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.
+
+### Troubleshooting message-mode gpg support
+
+- If you have trouble with expired subkeys, you may have encounted
+ emacs bug #7931. This is fixed in git commit 301ea744c on
+ 2011-02-02. Note that if you have the Debian package easypg
+ installed, it will shadow the fixed version of easypg included with
+ emacs.