]> git.notmuchmail.org Git - notmuch-wiki/blobdiff - emacstips.mdwn
news/release-0.23.2.mdwn
[notmuch-wiki] / emacstips.mdwn
index 2a91c949c8636cb3cd0e407170788ead503fd3c4..f5b418c6700cec7588040ed85a4b80248ceb528e 100644 (file)
@@ -276,8 +276,6 @@ the rest will go to the default account.
 
 ## sending mail using smtpmail
 
-another option is to use remov
-
 <!-- By default message mode will use the system `sendmail` command to send
 mail. However, on a typical desktop machine there may not be local SMTP
 daemon running (nor it is configured to send mail outside of the system). -->
@@ -286,22 +284,32 @@ If setting up local `sendmail` or `msmtp` is not feasible or desirable,
 the Emacs `smtpmail` package can be used to send email by talking to remote
 SMTP server via TCP connection. It is pretty easy to configure:
 
-1. `M-x customize-group smtpmail`
+1. Emacs variable `message-send-mail-function` has not been set
+
+   Initially, Emacs variable `message-send-mail-function` has value of
+   `sendmail-query-once`. When (notmuch) message mode is about to send email,
+   `sendmail-query-once` will ask how emacs should send email. Typing `smtp`
+   will configure `smtpmail` and Emacs may prompt for SMTP settings.
+
+1. `M-x customize-group RET smtpmail`
 
-   as as minimum, 'Smtpmail Smtp Server' needs to be set.
+   As a minimum, 'Smtpmail Smtp Server' needs to be set.
 
-   - then continue with `M-x load-library message` and
-     `M-x customize-variable message-send-mail-function`
-     -- choose `message-smtpmail-send-it` for that.
+   After doing that, continue with `M-x load-library RET message` and
+   `M-x customize-variable RET message-send-mail-function`.
+   In the customization buffer select `message-smtpmail-send-it`.
 
 1. Set some variables in .emacs or in [notmuch init file](/notmuch-emacs#notmuch_init_file)
 
         (setq smtpmail-smtp-server "smtp.server.tld" ;; <-- edit this !!!
-        ;; smtpmail-smtp-service 25 ;; 25 is default -- uncomment and edit if needed
-        ;; smtpmail-stream-type 'starttls
-        ;; smtpmail-debug-info t
-        ;; smtpmail-debug-verb t
-           message-send-mail-function 'message-smtpmail-send-it)
+        ;;    smtpmail-smtp-service 25 ;; 25 is default -- uncomment and edit if needed
+        ;;    smtpmail-stream-type 'starttls
+        ;;    smtpmail-debug-info t
+        ;;    smtpmail-debug-verb t
+              message-send-mail-function 'message-smtpmail-send-it)
+
+Note that emacs 24 or newer is required for `smtpmail-stream-type`
+(and smtp authentication) to be effective.
 
 More information for smtpmail is available:
 
@@ -313,6 +321,25 @@ More information for smtpmail is available:
 
 There are currently three solutions to this:
 
+### notmuch address
+
+Starting with Notmuch 0.21, there is a builtin command to perform
+autocompletion directly within Notmuch. Starting with 0.22, it is
+configured by default, so if you have previously configured another
+completion mechanism, you may want to try out the new internal
+method. Use `M-x customize-variable RET notmuch-address-command` and
+reset the value to "internal address completion" (`'internal` in
+lisp).
+
+If you are not yet running 0.22, you can still use it by adding a
+wrapper around the command called, say, `notmuch-address`:
+
+    #!/bin/sh
+    exec notmuch address from:"$*"
+
+Then you can set the `notmuch-address-command` to `notmuch-address`
+(if it is in your `$PATH` of course, otherwise use an absolute path).
+
 ### bbdb
 
 [bbdb](http://bbdb.sourceforge.net) is a contact database for emacs
@@ -443,7 +470,7 @@ part.
 
 Encrypted and signed mime messages can be read and verified with:
 
-        (notmuch-crypto-process-mime t)
+        (setq notmuch-crypto-process-mime t)
 
 Decrypting or verifying inline pgp messages can be done by selecting
 an the inline pgp area and and using:
@@ -517,6 +544,17 @@ The last two do the same thing.
 
 See also the **Usage:** section in `gnus-alias.el`.
 
+## Multiple identities (and more) with message-templ
+
+Another option for multiple identities is
+[message-templ](http://pivot.cs.unb.ca/git?p=message-templ.git;a=summary)
+(also a available in marmalade).  This provides roughly the same
+facilities as wanderlust's template facility.
+
+See
+[example.emacs.el](http://pivot.cs.unb.ca/git?p=message-templ.git;a=blob;f=example.emacs.el;hb=HEAD)
+for some simple examples of usage.
+
 ## Resending (or bouncing) messages
 
 Add the following to your [notmuch init file](/notmuch-emacs#notmuch_init_file) to be able
@@ -590,7 +628,7 @@ I like to have an inbox saved search, but only show unread messages when they
 view a thread. This takes two steps:
 
 1. Apply
-[this patch from Mark Walters](http://notmuchmail.org/pipermail/notmuch/2012/010817.html)
+[this patch from Mark Walters](https://notmuchmail.org/pipermail/notmuch/2012/010817.html)
 to add the `notmuch-show-filter-thread` function.
 1. Add the following hook to your emacs configuration:
 
@@ -662,25 +700,27 @@ refine, next hunk etc all work.
       "View the the current message as a patch."
       (interactive)
       (let* ((id (notmuch-show-get-message-id))
+             (msg (notmuch-show-get-message-properties))
+             (part (notmuch-show-get-part-properties))
              (subject (concat "Subject: " (notmuch-show-get-subject) "\n"))
              (diff-default-read-only t)
              (buf (get-buffer-create (concat "*notmuch-patch-" id "*")))
              (map (make-sparse-keymap)))
-        (define-key map "q" 'notmuch-kill-this-buffer)
+        (define-key map "q" 'notmuch-bury-or-kill-this-buffer)
         (switch-to-buffer buf)
         (let ((inhibit-read-only t))
           (erase-buffer)
           (insert subject)
-          (insert (notmuch-get-bodypart-internal id 1 nil)))
+          (insert (notmuch-get-bodypart-text msg part nil)))
         (set-buffer-modified-p nil)
         (diff-mode)
         (lexical-let ((new-ro-bind (cons 'buffer-read-only map)))
                      (add-to-list 'minor-mode-overriding-map-alist new-ro-bind))
         (goto-char (point-min))))
 
-and then this function needs to bound into the keymap with something like
+and then this function needs to bound to `. d` in the keymap
 
-    (define-key 'notmuch-show-mode-map "D" 'my-notmuch-show-view-as-patch)
+    (define-key 'notmuch-show-part-map "d" 'my-notmuch-show-view-as-patch)
 
 ## Interfacing with Patchwork