- Frequently Asked Questions
- How come this query matches mails in folder:2013? notmuch search --output=files folder:inbox
- Shouldn't notmuch support inline PGP?
- How do I delete messages
- How do I configure the citation line when replying in Emacs?
- How do I search for messages that have no tags?
- How do I search for punctuation, specific special characters, or regexp?
- How do I search for the List-Id: header?
- Can I use notmuch with grsec?
- Can I tag threads?
- How can I extract a git patchset for an email thread?
You have duplicates of a message (or messages) in both folders.
Notmuch searches are message based. Multiple files may be associated
with the same message (i.e. the files have identical Message-ID). A
folder: search will match the folder of any of the files. The
--output=files option outputs all the files of all matching messages.
(setq message-citation-line-format "On %a, %d %b %Y, %f wrote:") (setq message-citation-line-function 'message-insert-formatted-citation-line)
See help for
message-citation-line-format for details.
Unfortunately, there is no way to do this directly.
However, it's possible to accomplish this using two searches in shell. First, you need to query all tags in the database, and transform the result into a query that matches messages that have none of those tags:
$ notmuch search --output=tags \* | sed 's/^/not tag:/;2~1s/^/and /'
Next, use that to query the messages:
$ notmuch search $(notmuch search --output=tags \* | \ sed 's/^/not tag:/;2~1s/^/and /')
Please see the notmuch-search-terms manual page first.
The main thing to understand is that Xapian, and therefore Notmuch, searches are closer to natural language searches than regular expression searches. Punctuation is mostly ignored.
The boolean prefix searches (see Boolean and Probabilistic Prefixes in the man page), such as tag: or path: searches, need an exact match.
Currently there is no way to search for
List-Id:. As a workaround, try using a
to: prefix search (which covers both
Cc: headers) on the mailing
Limitations in the duplicate message handling are the main reason for not
List-Id: header. If you receive the same message via both the
list and directly (by way of
Cc:), only the first message encountered
will be indexed. Only the message received via the list will have
but you would expect a
List-Id: search to find the message, regardless of the
order in which the duplicates were received. This is a more general problem than
List-Id:, and once this has been resolved, adding
List-Id: indexing is
Sure! It works out of the box. If you have TPE enabled (trusted path execution),
make sure the user is executing the script belongs to the
kernel.grsecurity.tpe_gid (in debian this is grsec-tpe).
This is required in order to run the
No. Tagging is message based.
It is possible, however, to make tags propagate to all messages in a thread using a little bit of scripting in the post-new hook. For example, to add the muted tag to all messages in threads that have at least one message with the muted tag:
THREAD_TAGS="muted" for tag in "$THREAD_TAGS"; do notmuch tag +$tag $(notmuch search --output=threads tag:$tag) done
You can add other tags to
THREAD_TAGS as needed. Note that this is one way
only; you need to explicitly remove the tag from all the messages in a thread to
stop it from propagating again.