within a sub-directory of the path configured here named
<b>.notmuch</b>.
+ Default: <b>$MAILDIR</b> variable if set, otherwise <b>$HOME/mail</b>.
+
<b>user.name</b>
Your full name.
+ Default: <b>$NAME</b> variable if set, otherwise read from
+ <b>/etc/passwd</b>.
+
<b>user.primary</b>_<b>email</b>
Your primary email address.
+ Default: <b>$EMAIL</b> variable if set, otherwise constructed from
+ the username and hostname of the current machine.
+
<b>user.other</b>_<b>email</b>
A list of other email addresses at which you receive email.
+ Default: not set.
+
<b>new.tags</b>
A list of tags that will be added to all messages incorpo‐
rated by <b>notmuch</b> <b>new</b>.
+ Default: <b>unread;inbox</b>.
+
<b>new.ignore</b>
A list of file and directory names, without path, that will
not be searched for messages by <b>notmuch</b> <b>new</b>. All the files
be ignored, regardless of the location in the mail store
directory hierarchy.
+ Default: empty list.
+
<b>search.exclude</b>_<b>tags</b>
A list of tags that will be excluded from search results by
default. Using an excluded tag in a query will override that
exclusion.
+ Default: empty list. Note that <b>notmuch-setup</b>(1) puts
+ <b>deleted;spam</b> here when creating new configuration file.
+
<b>maildir.synchronize</b>_<b>flags</b>
- If true, then the following maildir flags (in message file‐
- names) will be synchronized with the corresponding notmuch
+ If true, then the following maildir flags (in message file‐
+ names) will be synchronized with the corresponding notmuch
tags:
┌─────┬────────────────────────────┐
├─────┼────────────────────────────┤
│R │ replied │
├─────┼────────────────────────────┤
- │S │ unread (added when 'S' │
+ │S │ unread (added when 'S' │
│ │ flag is not present) │
└─────┴────────────────────────────┘
The <b>notmuch</b> <b>new</b> command will notice flag changes in filenames
- and update tags, while the <b>notmuch</b> <b>tag</b> and <b>notmuch</b> <b>restore</b>
- commands will notice tag changes and update flags in file‐
+ and update tags, while the <b>notmuch</b> <b>tag</b> and <b>notmuch</b> <b>restore</b>
+ commands will notice tag changes and update flags in file‐
names.
- If there have been any changes in the maildir (new messages
- added, old ones removed or renamed, maildir flags changed,
- etc.), it is advisable to run <b>notmuch</b> <b>new</b> before <b>notmuch</b> <b>tag</b>
- or <b>notmuch</b> <b>restore</b> commands to ensure the tag changes are
- properly synchronized to the maildir flags, as the commands
+ If there have been any changes in the maildir (new messages
+ added, old ones removed or renamed, maildir flags changed,
+ etc.), it is advisable to run <b>notmuch</b> <b>new</b> before <b>notmuch</b> <b>tag</b>
+ or <b>notmuch</b> <b>restore</b> commands to ensure the tag changes are
+ properly synchronized to the maildir flags, as the commands
expect the database and maildir to be in sync.
+
+ Default: <b>true</b>.
+
+ <b>crypto.gpg</b>_<b>path</b>
+ Name (or full path) of gpg binary to use in verification and
+ decryption of PGP/MIME messages.
+
+ Default: <b>gpg</b>.
</pre>
<h2>ENVIRONMENT</h2>
2014, Carl Worth and many others
</pre>
-<h2>0.19</h2>
+<h2>0.20.1</h2>
<h2>SYNOPSIS</h2>
<pre>
- <b>notmuch</b> <b>dump</b> [--format=(batch-tag|sup)] [--] [--output=<<u>file</u>>] [--]
+ <b>notmuch</b> <b>dump</b> [--gzip] [--format=(batch-tag|sup)] [--output=<<u>file</u>>] [--]
[<<u>search-term</u>> ...]
</pre>
therefore the only critical thing to backup (and much more friendly to
incremental backup than the native database files.)
- <b>--gzip</b> Compress the output in a format compatible with <b>gzip</b>(1).
+ See <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7) for details of the supported syntax for
+ <search-terms>. With no search terms, a dump of all messages in the
+ database will be generated. A "--" argument instructs notmuch that the
+ remaining arguments are search terms.
- <b>--format=(sup|batch-tag)</b>
- Notmuch restore supports two plain text dump formats, both with
- one message-id per line, followed by a list of tags.
+ Supported options for <b>dump</b> include
- <b>batch-tag</b>
- The default <b>batch-tag</b> dump format is intended to more
- robust against malformed message-ids and tags containing
- whitespace or non-<b>ascii</b>(7) characters. Each line has the
+ <b>--gzip</b> Compress the output in a format compatible with <b>gzip</b>(1).
+
+ <b>--format=(sup|batch-tag)</b>
+ Notmuch restore supports two plain text dump formats, both
+ with one message-id per line, followed by a list of tags.
+
+ <b>batch-tag</b>
+ The default <b>batch-tag</b> dump format is intended to more
+ robust against malformed message-ids and tags containing
+ whitespace or non-<b>ascii</b>(7) characters. Each line has the
form
- +<<u>encoded-tag</u>> +<<u>encoded-tag</u>> ... -- id:<<u>quoted-mes‐</u>
+ +<<u>encoded-tag</u>> +<<u>encoded-tag</u>> ... -- id:<<u>quoted-mes‐</u>
<u>sage-id</u>>
Tags are hex-encoded by replacing every byte not matching
the regex <b>[A-Za-z0-9@=.,</b>_<b>+-]</b> with <b>%nn</b> where nn is the two
- digit hex encoding. The message ID is a valid Xapian
+ digit hex encoding. The message ID is a valid Xapian
query, quoted using Xapian boolean term quoting rules: if
- the ID contains whitespace or a close paren or starts
+ the ID contains whitespace or a close paren or starts
with a double quote, it must be enclosed in double quotes
- and double quotes inside the ID must be doubled. The
- astute reader will notice this is a special case of the
+ and double quotes inside the ID must be doubled. The
+ astute reader will notice this is a special case of the
batch input format for <a href='../notmuch-tag-1/'>notmuch-tag</a>(1); note that the sin‐
gle message-id query is mandatory for <a href='../notmuch-restore-1/'>notmuch-restore</a>(1).
- <b>sup</b> The <b>sup</b> dump file format is specifically chosen to be
+ <b>sup</b>
+ The <b>sup</b> dump file format is specifically chosen to be
compatible with the format of files produced by sup-dump.
So if you've previously been using sup for mail, then the
- <b>notmuch</b> <b>restore</b> command provides you a way to import all
+ <b>notmuch</b> <b>restore</b> command provides you a way to import all
of your tags (or labels as sup calls them). Each line has
the following form
<<u>message-id</u>> <b>(</b> <<u>tag</u>> ... <b>)</b>
with zero or more tags are separated by spaces. Note that
- (malformed) message-ids may contain arbitrary non-null
- characters. Note also that tags with spaces will not be
+ (malformed) message-ids may contain arbitrary non-null
+ characters. Note also that tags with spaces will not be
correctly restored with this format.
- With no search terms, a dump of all messages in the database
- will be generated. A "--" argument instructs notmuch that the
- remaining arguments are search terms.
-
- See <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7) for details of the supported syntax
- for <search-terms>.
+ <b>--output=<filename></b>
+ Write output to given file instead of stdout.
</pre>
<h2>SEE ALSO</h2>
2014, Carl Worth and many others
</pre>
-<h2>0.19</h2>
+<h2>0.20.1</h2>
· attachment:<word>
+ · mimetype:<word>
+
· tag:<tag> (or is:<tag>)
· id:<message-id>
The <b>attachment:</b> prefix can be used to search for specific filenames (or
extensions) of attachments to email messages.
- For <b>tag:</b> and <b>is:</b> valid tag values include <b>inbox</b> and <b>unread</b> by default
- for new messages added by <b>notmuch</b> <b>new</b> as well as any other tag values
+ The <b>mimetype:</b> prefix will be used to match text from the content-types
+ of MIME parts within email messages (as specified by the sender).
+
+ For <b>tag:</b> and <b>is:</b> valid tag values include <b>inbox</b> and <b>unread</b> by default
+ for new messages added by <b>notmuch</b> <b>new</b> as well as any other tag values
added manually with <b>notmuch</b> <b>tag</b>.
- For <b>id:</b>, message ID values are the literal contents of the Message-ID:
+ For <b>id:</b>, message ID values are the literal contents of the Message-ID:
header of email messages, but without the '<', '>' delimiters.
- The <b>thread:</b> prefix can be used with the thread ID values that are gen‐
- erated internally by notmuch (and do not appear in email messages).
- These thread ID values can be seen in the first column of output from
+ The <b>thread:</b> prefix can be used with the thread ID values that are gen‐
+ erated internally by notmuch (and do not appear in email messages).
+ These thread ID values can be seen in the first column of output from
<b>notmuch</b> <b>search</b>
- The <b>path:</b> prefix searches for email messages that are in particular
+ The <b>path:</b> prefix searches for email messages that are in particular
directories within the mail store. The directory must be specified rel‐
- ative to the top-level maildir (and without the leading slash). By
- default, <b>path:</b> matches messages in the specified directory only. The
- "/**" suffix can be used to match messages in the specified directory
- and all its subdirectories recursively. <b>path:""</b> matches messages in
+ ative to the top-level maildir (and without the leading slash). By
+ default, <b>path:</b> matches messages in the specified directory only. The
+ "/**" suffix can be used to match messages in the specified directory
+ and all its subdirectories recursively. <b>path:""</b> matches messages in
the root of the mail store and, likewise, <b>path:**</b> matches all messages.
The <b>folder:</b> prefix searches for email messages by maildir or MH folder.
- For MH-style folders, this is equivalent to <b>path:</b>. For maildir, this
+ For MH-style folders, this is equivalent to <b>path:</b>. For maildir, this
includes messages in the "new" and "cur" subdirectories. The exact syn‐
- tax for maildir folders depends on your mail configuration. For
- maildir++, <b>folder:""</b> matches the inbox folder (which is the root in
- maildir++), other folder names always start with ".", and nested fold‐
- ers are separated by "."s, such as <b>folder:.classes.topology</b>. For "file
+ tax for maildir folders depends on your mail configuration. For
+ maildir++, <b>folder:""</b> matches the inbox folder (which is the root in
+ maildir++), other folder names always start with ".", and nested fold‐
+ ers are separated by "."s, such as <b>folder:.classes.topology</b>. For "file
system" maildir, the inbox is typically <b>folder:INBOX</b> and nested folders
are separated by slashes, such as <b>folder:classes/topology</b>.
- Both <b>path:</b> and <b>folder:</b> will find a message if <u>any</u> copy of that message
+ Both <b>path:</b> and <b>folder:</b> will find a message if <u>any</u> copy of that message
is in the specific directory/folder.
- The <b>date:</b> prefix can be used to restrict the results to only messages
+ The <b>date:</b> prefix can be used to restrict the results to only messages
within a particular time range (based on the Date: header) with a range
syntax of:
<initial-timestamp>..<final-timestamp>
- Each timestamp is a number representing the number of seconds since
+ Each timestamp is a number representing the number of seconds since
1970-01-01 00:00:00 UTC.
+</pre>
- In addition to individual terms, multiple terms can be combined with
- Boolean operators ( <b>and</b>, <b>or</b>, <b>not</b> , etc.). Each term in the query will
- be implicitly connected by a logical AND if no explicit operator is
- provided, (except that terms with a common prefix will be implicitly
- combined with OR until we get Xapian defect #402 fixed).
-
- Parentheses can also be used to control the combination of the Boolean
- operators, but will have to be protected from interpretation by the
- shell, (such as by putting quotation marks around any parenthesized
+<h3> Operators</h3>
+<pre>
+ In addition to individual terms, multiple terms can be combined with
+ Boolean operators (<b>and</b>, <b>or</b>, <b>not</b>, and <b>xor</b>). Each term in the query will
+ be implicitly connected by a logical AND if no explicit operator is
+ provided (except that terms with a common prefix will be implicitly
+ combined with OR). The shorthand '-<term>' can be used for 'not
+ <term>' but unfortunately this does not work at the start of an expres‐
+ sion. Parentheses can also be used to control the combination of the
+ Boolean operators, but will have to be protected from interpretation by
+ the shell, (such as by putting quotation marks around any parenthesized
expression).
+
+ In addition to the standard boolean operators, Xapian provides several
+ operators specific to text searching.
+
+ notmuch search term1 NEAR term2
+
+ will return results where term1 is within 10 words of term2. The
+ threshold can be set like this:
+
+ notmuch search term1 NEAR/2 term2
+
+ The search
+
+ notmuch search term1 ADJ term2
+
+ will return results where term1 is within 10 words of term2, but in the
+ same order as in the query. The threshold can be set the same as with
+ NEAR:
+
+ notmuch search term1 ADJ/7 term2
+</pre>
+
+<h3> Stemming</h3>
+<pre>
+ <b>Stemming</b> in notmuch means that these searches
+
+ notmuch search detailed
+ notmuch search details
+ notmuch search detail
+
+ will all return identical results, because Xapian first "reduces" the
+ term to the common stem (here 'detail') and then performs the search.
+
+ There are two ways to turn this off: a search for a capitalized word
+ will be performed unstemmed, so that one can search for "John" and not
+ get results for "Johnson"; phrase searches are also unstemmed (see
+ below for details). Stemming is currently only supported for English.
+ Searches for words in other languages will be performed unstemmed.
+</pre>
+
+<h3> Wildcards</h3>
+<pre>
+ It is possible to use a trailing '*' as a wildcard. A search for
+ 'wildc*' will match 'wildcard', 'wildcat', etc.
+</pre>
+
+<h3> Boolean and Probabilistic Prefixes</h3>
+<pre>
+ Xapian (and hence notmuch) prefixes are either <b>boolean</b>, supporting
+ exact matches like "<u>tag:inbox</u>" or <b>probabilistic</b>, supporting a more
+ flexible <b>term</b> based searching. The prefixes currently supported by not‐
+ much are as follows.
+
+ ┌───────────────────────────┬────────────────────────────┐
+ │Boolean
+ ├───────────────────────────┼────────────────────────────┤
+ │
+ │
+ │ <b>thread:</b> <b>folder:</b> │ <b>subject:</b> <b>attach‐</b> │
+ │ <b>path:</b> │ <b>ment:</b> <b>mimetype:</b> │
+ └───────────────────────────┴────────────────────────────┘
+</pre>
+
+<h3> Terms and phrases</h3>
+<pre>
+ In general Xapian distinguishes between lists of terms and <b>phrases</b>.
+ Phrases are indicated by double quotes (but beware you probably need to
+ protect those from your shell) and insist that those unstemmed words
+ occur in that order. One useful, but initially surprising feature is
+ that the following are equivalant ways to write the same phrase.
+
+ · "a list of words"
+
+ · a-list-of-words
+
+ · a/list/of/words
+
+ · a.list.of.words
+
+ Both parenthesised lists of terms and quoted phrases are ok with proba‐
+ bilisitic prefixes such as <b>to:</b>, <b>from:</b>, and <b>subject:</b>. In particular
+
+ subject:(pizza free)
+
+ is equivalent to
+
+ subject:pizza and subject:free
+
+ Both of these will match a subject "Free Delicious Pizza" while
+
+ subject:"pizza free"
+
+ will not.
</pre>
<h2>DATE AND TIME SEARCH</h2>
<pre>
- notmuch understands a variety of standard and natural ways of express‐
+ notmuch understands a variety of standard and natural ways of express‐
ing dates and times, both in absolute terms ("2012-10-24") and in rela‐
- tive terms ("yesterday"). Any number of relative terms can be combined
- ("1 hour 25 minutes") and an absolute date/time can be combined with
- relative terms to further adjust it. A non-exhaustive description of
+ tive terms ("yesterday"). Any number of relative terms can be combined
+ ("1 hour 25 minutes") and an absolute date/time can be combined with
+ relative terms to further adjust it. A non-exhaustive description of
the syntax supported for absolute and relative terms is given below.
</pre>
<pre>
date:<since>..<until>
- The above expression restricts the results to only messages from
+ The above expression restricts the results to only messages from
<since> to <until>, based on the Date: header.
- <since> and <until> can describe imprecise times, such as "yesterday".
- In this case, <since> is taken as the earliest time it could describe
+ <since> and <until> can describe imprecise times, such as "yesterday".
+ In this case, <since> is taken as the earliest time it could describe
(the beginning of yesterday) and <until> is taken as the latest time it
- could describe (the end of yesterday). Similarly, date:january..febru‐
+ could describe (the end of yesterday). Similarly, date:january..febru‐
ary matches from the beginning of January to the end of February.
- Currently, we do not support spaces in range expressions. You can
+ Currently, we do not support spaces in range expressions. You can
replace the spaces with '_', or (in most cases) '-', or (in some cases)
- leave the spaces out altogether. Examples in this man page use spaces
+ leave the spaces out altogether. Examples in this man page use spaces
for clarity.
- Open-ended ranges are supported (since Xapian 1.2.1), i.e. it's possi‐
- ble to specify date:..<until> or date:<since>.. to not limit the start
+ Open-ended ranges are supported (since Xapian 1.2.1), i.e. it's possi‐
+ ble to specify date:..<until> or date:<since>.. to not limit the start
or end time, respectively. Pre-1.2.1 Xapian does not report an error on
open ended ranges, but it does not work as expected either.
- Entering date:expr without ".." (for example date:yesterday) won't
- work, as it's not interpreted as a range expression at all. You can
- achieve the expected result by duplicating the expr both sides of ".."
+ Entering date:expr without ".." (for example date:yesterday) won't
+ work, as it's not interpreted as a range expression at all. You can
+ achieve the expected result by duplicating the expr both sides of ".."
(for example date:yesterday..yesterday).
</pre>
All refer to past, can be repeated and will be accumulated.
- Units can be abbreviated to any length, with the otherwise ambiguous
+ Units can be abbreviated to any length, with the otherwise ambiguous
single m being m for minutes and M for months.
- Number can also be written out one, two, ..., ten, dozen, hundred.
+ Number can also be written out one, two, ..., ten, dozen, hundred.
Additionally, the unit may be preceded by "last" or "this" (e.g., "last
week" or "this month").
- When combined with absolute date and time, the relative date and time
- specification will be relative from the specified absolute date and
+ When combined with absolute date and time, the relative date and time
+ specification will be relative from the specified absolute date and
time.
Examples: 5M2d, two weeks
<h2>SEE ALSO</h2>
<pre>
- <a href='../notmuch-1/'>notmuch</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-count-1/'>notmuch-count</a>(1), <a href='../notmuch-dump-1/'>notmuch-dump</a>(1), <a href='../notmuch-hooks-5/'>not‐</a>
- <a href='../notmuch-hooks-5/'>much-hooks</a>(5), <a href='../notmuch-insert-1/'>notmuch-insert</a>(1), <a href='../notmuch-new-1/'>notmuch-new</a>(1), <a href='../notmuch-reply-1/'>notmuch-reply</a>(1),
+ <a href='../notmuch-1/'>notmuch</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-count-1/'>notmuch-count</a>(1), <a href='../notmuch-dump-1/'>notmuch-dump</a>(1), <a href='../notmuch-hooks-5/'>not‐</a>
+ <a href='../notmuch-hooks-5/'>much-hooks</a>(5), <a href='../notmuch-insert-1/'>notmuch-insert</a>(1), <a href='../notmuch-new-1/'>notmuch-new</a>(1), <a href='../notmuch-reply-1/'>notmuch-reply</a>(1),
<a href='../notmuch-restore-1/'>notmuch-restore</a>(1), <a href='../notmuch-search-1/'>notmuch-search</a>(1), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
</pre>
2014, Carl Worth and many others
</pre>
-<h2>0.19</h2>
+<h2>0.20.1</h2>