]> git.cworth.org Git - notmuch-wiki/blobdiff - emacstips.mdwn
Tip how to use 'my-notmuch.el'...
[notmuch-wiki] / emacstips.mdwn
index 23ca79900d9ca5e7291e1897aab8dcbb2a27291a..c384fb61b17161a5b869555188f7088f6a53f3e8 100644 (file)
@@ -14,6 +14,10 @@ To use the Notmuch emacs mode, first add the following line to your
 
        (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.
 
@@ -47,24 +51,25 @@ messages.  When in message mode, you can type `C-c ?` for help.
 If you would like to use address autocompletion when composing
 messages, see [address completion](#address_completion).
 
-When you are ready to send a message, type `C-c C-c`.  By default
+When you are ready to send a message, type `C-c C-c`. By default
 message mode will use your sendmail command to send mail, so make sure
-that works.  One annoying standard configuration of message mode is
+that works. One annoying standard configuration of message mode is
 that it will hide the sent mail in your emacs frame stack, but it will
 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 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
@@ -91,6 +96,40 @@ mentioned as script arguments. (Note: The script expects that you have
 
 # 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
@@ -222,13 +261,13 @@ 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
+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.
+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
@@ -249,6 +288,13 @@ 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:
@@ -275,10 +321,12 @@ available:
 
                     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.
+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
 
@@ -300,3 +348,11 @@ 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.
+
+### 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.