* <a href='notmuch-emacs-mua-1/'>notmuch-emacs-mua</a>(1) - send mail with notmuch and emacs
* <a href='notmuch-insert-1/'>notmuch-insert</a>(1) - add a message to the maildir and notmuch database
* <a href='notmuch-new-1/'>notmuch-new</a>(1) - incorporate new mail into the notmuch database
+* <a href='notmuch-reindex-1/'>notmuch-reindex</a>(1) - re-index matching messages
* <a href='notmuch-reply-1/'>notmuch-reply</a>(1) - constructs a reply template for a set of messages
* <a href='notmuch-restore-1/'>notmuch-restore</a>(1) - restores the tags from the given file (see notmuch dump)
* <a href='notmuch-search-1/'>notmuch-search</a>(1) - search for messages matching the given search terms
* <a href='notmuch-show-1/'>notmuch-show</a>(1) - show messages matching the given search terms
* <a href='notmuch-tag-1/'>notmuch-tag</a>(1) - add/remove tags for all messages matching the search terms
* <a href='notmuch-hooks-5/'>notmuch-hooks</a>(5) - hooks for notmuch
+* <a href='notmuch-properties-7/'>notmuch-properties</a>(7) - notmuch message property conventions and documentation
* <a href='notmuch-search-terms-7/'>notmuch-search-terms</a>(7) - syntax for notmuch queries
The manual pages are licensed under
[the GNU General Public License](https://www.gnu.org/licenses/gpl.txt),
either version 3.0 or at your option any later version.
-<h2>0.24</h2>
+<h2>0.26</h2>
<pre>
Supported global options for <b>notmuch</b> include
- <b>--help</b> <b>[command-name]</b>
- Print a synopsis of available commands and exit. With an
- optional command name, show the man page for that subcommand.
+ <b>--help</b> <b>[command-name]</b>
+ Print a synopsis of available commands and exit. With an
+ optional command name, show the man page for that subcommand.
- <b>--version</b>
- Print the installed version of notmuch, and exit.
+ <b>--version</b>
+ Print the installed version of notmuch, and exit.
- <b>--config=FILE</b>
- Specify the configuration file to use. This overrides any
- configuration file specified by ${NOTMUCH_CONFIG}.
+ <b>--config=FILE</b>
+ Specify the configuration file to use. This overrides any con‐
+ figuration file specified by ${NOTMUCH_CONFIG}.
- <b>--uuid=HEX</b>
- Enforce that the database UUID (a unique identifier which
- persists until e.g. the database is compacted) is HEX; exit
- with an error if it is not. This is useful to detect rollover
- in modification counts on messages. You can find this UUID
- using e.g. <b>notmuch</b> <b>count</b> <b>--lastmod</b>
+ <b>--uuid=HEX</b>
+ Enforce that the database UUID (a unique identifier which per‐
+ sists until e.g. the database is compacted) is HEX; exit with an
+ error if it is not. This is useful to detect rollover in modifi‐
+ cation counts on messages. You can find this UUID using e.g.
+ <b>notmuch</b> <b>count</b> <b>--lastmod</b>
All global options except <b>--config</b> can also be specified after the com‐
mand. For example, <b>notmuch</b> <b>subcommand</b> <b>--uuid=HEX</b> is equivalent to <b>not-</b>
the external <b>notmuch-<subcommand></b> in ${PATH} instead. This allows users
to have their own notmuch related tools to be run via the notmuch com‐
mand. By design, this does not allow notmuch's own commands to be over‐
- riden using external commands.
+ ridden using external commands.
+</pre>
+
+<h3> OPTION SYNTAX</h3>
+<pre>
+ All options accepting an argument can be used with '=' or ':' as a sep‐
+ arator. For the cases where it's not ambiguous (in particular excluding
+ boolean options), a space can also be used. The following are all
+ equivalent:
+
+ notmuch --config=alt-config config get user.name
+ notmuch --config:alt-config config get user.name
+ notmuch --config alt-config config get user.name
</pre>
<h2>ENVIRONMENT</h2>
of notmuch.
<b>NOTMUCH</b>_<b>CONFIG</b>
- Specifies the location of the notmuch configuration file. Not‐
- much will use ${HOME}/.notmuch-config if this variable is not
+ Specifies the location of the notmuch configuration file. Not‐
+ much will use ${HOME}/.notmuch-config if this variable is not
set.
<b>NOTMUCH</b>_<b>TALLOC</b>_<b>REPORT</b>
- Location to write a talloc memory usage report. See <b>tal-</b>
+ Location to write a talloc memory usage report. See <b>tal-</b>
<b>loc</b>_<b>enable</b>_<b>leak</b>_<b>report</b>_<b>full</b> in <b>talloc</b>(3) for more information.
<b>NOTMUCH</b>_<b>DEBUG</b>_<b>QUERY</b>
- If set to a non-empty value, the notmuch library will print (to
+ If set to a non-empty value, the notmuch library will print (to
stderr) Xapian queries it constructs.
</pre>
<h2>SEE ALSO</h2>
<pre>
- <a href='../notmuch-address-1/'>notmuch-address</a>(1), <a href='../notmuch-compact-1/'>notmuch-compact</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-count-1/'>not‐</a>
+ <a href='../notmuch-address-1/'>notmuch-address</a>(1), <a href='../notmuch-compact-1/'>notmuch-compact</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-count-1/'>not‐</a>
<a href='../notmuch-count-1/'>much-count</a>(1), <a href='../notmuch-dump-1/'>notmuch-dump</a>(1), <a href='../notmuch-hooks-5/'>notmuch-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/'>not‐</a>
- <a href='../notmuch-search-1/'>much-search</a>(1), <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>not‐</a>
- <a href='../notmuch-tag-1/'>much-tag</a>(1)
+ <a href='../notmuch-new-1/'>notmuch-new</a>(1), <a href='../notmuch-properties-7/'>notmuch-properties</a>(7), <a href='../notmuch-reindex-1/'>notmuch-reindex</a>(1), <a href='../notmuch-reply-1/'>not‐</a>
+ <a href='../notmuch-reply-1/'>much-reply</a>(1), <a href='../notmuch-restore-1/'>notmuch-restore</a>(1), <a href='../notmuch-search-1/'>notmuch-search</a>(1), <a href='../notmuch-search-terms-7/'>not‐</a>
+ <a href='../notmuch-search-terms-7/'>much-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
The notmuch website: <b>https://notmuchmail.org</b>
</pre>
<h2>CONTACT</h2>
<pre>
- Feel free to send questions, comments, or kudos to the notmuch mailing
- list <<u>notmuch@notmuchmail.org</u>> . Subscription is not required before
+ Feel free to send questions, comments, or kudos to the notmuch mailing
+ list <<u>notmuch@notmuchmail.org</u>> . Subscription is not required before
posting, but is available from the notmuchmail.org website.
- Real-time interaction with the Notmuch community is available via IRC
+ Real-time interaction with the Notmuch community is available via IRC
(server: irc.freenode.net, channel: #notmuch).
</pre>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>address</b> include
- <b>--format=(json|sexp|text|text0)</b>
- Presents the results in either JSON, S-Expressions, newline
- character separated plain-text (default), or null character
- separated plain-text (compatible with <b>xargs</b>(1) -0 option
- where available).
-
- <b>--format-version=N</b>
- Use the specified structured output format version. This is
- intended for programs that invoke <a href='../notmuch-1/'>notmuch</a>(1) internally. If
- omitted, the latest supported version will be used.
-
- <b>--output=(sender|recipients|count)</b>
+ <b>--format=</b>(<b>json</b>|<b>sexp</b>|<b>text</b>|<b>text0</b>)
+ Presents the results in either JSON, S-Expressions, newline
+ character separated plain-text (default), or null character sep‐
+ arated plain-text (compatible with <b>xargs</b>(1) -0 option where
+ available).
+
+ <b>--format-version=N</b>
+ Use the specified structured output format version. This is
+ intended for programs that invoke <a href='../notmuch-1/'>notmuch</a>(1) internally. If
+ omitted, the latest supported version will be used.
+
+ <b>--output=(sender|recipients|count|address)</b>
Controls which information appears in the output. This option
can be given multiple times to combine different outputs. When
neither --output=sender nor --output=recipients is given, --out‐
Note: With this option, addresses are printed only after
the whole search is finished. This may take long time.
- <b>--deduplicate=(no|mailbox|address)</b>
+ <b>address</b>
+ Output only the email addresses instead of the full mail‐
+ boxes with names and email addresses. This option has no
+ effect on the JSON or S-Expression output formats.
+
+ <b>--deduplicate=(no|mailbox|address)</b>
Control the deduplication of results.
- <b>no</b> Output all occurences of addresses in the matching mes‐
+ <b>no</b> Output all occurrences of addresses in the matching mes‐
sages. This is not applicable with --output=count.
<b>mailbox</b>
frequently among the matching messages. If --output=count
is specified, include all variants in the count.
- <b>--sort=(newest-first|oldest-first)</b>
- This option can be used to present results in either chrono‐
- logical order (<b>oldest-first</b>) or reverse chronological order
- (<b>newest-first</b>).
+ <b>--sort=</b>(<b>newest-first</b>|<b>oldest-first</b>)
+ This option can be used to present results in either chronologi‐
+ cal order (<b>oldest-first</b>) or reverse chronological order (<b>new-</b>
+ <b>est-first</b>).
- By default, results will be displayed in reverse chronologi‐
- cal order, (that is, the newest results will be displayed
- first).
+ By default, results will be displayed in reverse chronological
+ order, (that is, the newest results will be displayed first).
- However, if either --output=count or --deduplicate=address is
- specified, this option is ignored and the order of the
- results is unspecified.
+ However, if either --output=count or --deduplicate=address is
+ specified, this option is ignored and the order of the results
+ is unspecified.
- <b>--exclude=(true|false)</b>
- A message is called "excluded" if it matches at least one tag
- in search.tag_exclude that does not appear explicitly in the
- search terms. This option specifies whether to omit excluded
- messages in the search process.
+ <b>--exclude=(true|false)</b>
+ A message is called "excluded" if it matches at least one tag in
+ search.tag_exclude that does not appear explicitly in the search
+ terms. This option specifies whether to omit excluded messages
+ in the search process.
- The default value, <b>true</b>, prevents excluded messages from
- matching the search terms.
+ The default value, <b>true</b>, prevents excluded messages from match‐
+ ing the search terms.
- <b>false</b> allows excluded messages to match search terms and
- appear in displayed results.
+ <b>false</b> allows excluded messages to match search terms and appear
+ in displayed results.
</pre>
<h2>EXIT STATUS</h2>
<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-restore-1/'>notmuch-restore</a>(1), <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>not‐</a>
+ <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-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>not‐</a>
<a href='../notmuch-tag-1/'>much-tag</a>(1), <a href='../notmuch-search-1/'>notmuch-search</a>(1)
</pre>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>compact</b> include
- <b>--backup=<directory></b>
- Save the current database to the given directory before
- replacing it with the compacted database. The backup direc‐
- tory must not exist and it must reside on the same mounted
- filesystem as the current database.
+ <b>--backup=<directory></b>
+ Save the current database to the given directory before replac‐
+ ing it with the compacted database. The backup directory must
+ not exist and it must reside on the same mounted filesystem as
+ the current database.
- <b>--quiet</b>
- Do not report database compaction progress to stdout.
+ <b>--quiet</b>
+ Do not report database compaction progress to stdout.
</pre>
<h2>ENVIRONMENT</h2>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
<h2>DESCRIPTION</h2>
<pre>
The <b>config</b> command can be used to get or set settings in the notmuch
- configuration file.
+ configuration file and corresponding database.
- <b>get</b> The value of the specified configuration item is printed to
- stdout. If the item has multiple values (it is a list), each
- value is separated by a newline character.
+ Items marked <b>[STORED</b> <b>IN</b> <b>DATABASE]</b> are only in the database. They
+ should not be placed in the configuration file, and should be accessed
+ programmatically as described in the SYNOPSIS above.
- <b>set</b> The specified configuration item is set to the given value.
- To specify a multiple-value item (a list), provide each value
- as a separate command-line argument.
+ <b>get</b> The value of the specified configuration item is printed to std‐
+ out. If the item has multiple values (it is a list), each value
+ is separated by a newline character.
- If no values are provided, the specified configuration item
- will be removed from the configuration file.
+ <b>set</b> The specified configuration item is set to the given value. To
+ specify a multiple-value item (a list), provide each value as a
+ separate command-line argument.
- <b>list</b> Every configuration item is printed to stdout, each on a sep‐
- arate line of the form:
+ If no values are provided, the specified configuration item will
+ be removed from the configuration file.
- <u>section</u>.<u>item</u>=<u>value</u>
+ <b>list</b> Every configuration item is printed to stdout, each on a sepa‐
+ rate line of the form:
- No additional whitespace surrounds the dot or equals sign
- characters. In a multiple-value item (a list), the values are
- separated by semicolon characters.
+ *section*.\ *item*\ =\ *value*
+
+ No additional whitespace surrounds the dot or equals sign char‐
+ acters. In a multiple-value item (a list), the values are sepa‐
+ rated by semicolon characters.
The available configuration items are described below.
- <b>database.path</b>
- The top-level directory where your mail currently exists and
- to where mail will be delivered in the future. Files should
- be individual email messages. Notmuch will store its database
- 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
- and directories matching any of the names specified here will
- 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
- tags:
-
- ┌─────┬────────────────────────────┐
- │Flag │ Tag │
- ├─────┼────────────────────────────┤
- │D │ draft │
- ├─────┼────────────────────────────┤
- │F │ flagged │
- ├─────┼────────────────────────────┤
- │P │ passed │
- ├─────┼────────────────────────────┤
- │R │ replied │
- ├─────┼────────────────────────────┤
- │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‐
- 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
- expect the database and maildir to be in sync.
-
- Default: <b>true</b>.
-
- <b>crypto.gpg</b>_<b>path</b>
+ <b>database.path</b>
+ The top-level directory where your mail currently exists and to
+ where mail will be delivered in the future. Files should be
+ individual email messages. Notmuch will store its database
+ within a sub-directory of the path configured here named <b>.not-</b>
+ <b>much</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 incorporated
+ by <b>notmuch</b> <b>new</b>.
+
+ Default: <b>unread;inbox</b>.
+
+ <b>new.ignore</b>
+ A list to specify files and directories that will not be
+ searched for messages by <b>notmuch</b> <b>new</b>. Each entry in the list is
+ either:
+
+ A file or a directory name, without path, that will be ignored,
+ regardless of the location in the mail store directory hierar‐
+ chy.
+
+ Or:
+
+ A regular expression delimited with // that will be matched
+ against the path of the file or directory relative to the data‐
+ base path. Matching files and directories will be ignored. The
+ beginning and end of string must be explicitly anchored. For
+ example, /.*/foo$/ would match "bar/foo" and "bar/baz/foo", but
+ not "foo" or "bar/foobar".
+
+ 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 filenames)
+ will be synchronized with the corresponding notmuch tags:
+
+ ┌─────┬────────────────────────────┐
+ │Flag │ Tag │
+ ├─────┼────────────────────────────┤
+ │D │ draft │
+ ├─────┼────────────────────────────┤
+ │F │ flagged │
+ ├─────┼────────────────────────────┤
+ │P │ passed │
+ ├─────┼────────────────────────────┤
+ │R │ replied │
+ ├─────┼────────────────────────────┤
+ │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> com‐
+ mands will notice tag changes and update flags in filenames.
+
+ 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.
+ decryption of PGP/MIME messages. NOTE: This configuration item
+ is deprecated, and will be ignored if notmuch is built against
+ GMime 3.0 or later.
Default: <b>gpg</b>.
- <b>built</b>_<b>with.<name></b>
+ <b>index.decrypt</b> <b>[STORED</b> <b>IN</b> <b>DATABASE]</b>
+ Policy for decrypting encrypted messages during indexing. Must
+ be one of: <b>false</b>, <b>auto</b>, <b>nostash</b>, or <b>true</b>.
+
+ When indexing an encrypted e-mail message, if this variable is
+ set to <b>true</b>, notmuch will try to decrypt the message and index
+ the cleartext, stashing a copy of any discovered session keys
+ for the message. If <b>auto</b>, it will try to index the cleartext if
+ a stashed session key is already known for the message (e.g.
+ from a previous copy), but will not try to access your secret
+ keys. Use <b>false</b> to avoid decrypting even when a stashed session
+ key is already present.
+
+ <b>nostash</b> is the same as <b>true</b> except that it will not stash
+ newly-discovered session keys in the database.
+
+ From the command line (i.e. during <a href='../notmuch-new-1/'>notmuch-new</a>(1), <a href='../notmuch-insert-1/'>not‐</a>
+ <a href='../notmuch-insert-1/'>much-insert</a>(1), or <a href='../notmuch-reindex-1/'>notmuch-reindex</a>(1)), the user can override
+ the database's stored decryption policy with the <b>--decrypt=</b>
+ option.
+
+ Here is a table that summarizes the functionality of each of
+ these policies:
+
+ ┌──────────────┬───────┬──────┬─────────┬──────┐
+ │ │ false │ auto │ nostash │ true │
+ ├──────────────┼───────┼──────┼─────────┼──────┤
+ │Index cleart‐ │ │ X │ X │ X │
+ │ext using │ │ │ │ │
+ │stashed ses‐ │ │ │ │ │
+ │sion keys │ │ │ │ │
+ ├──────────────┼───────┼──────┼─────────┼──────┤
+ │Index cleart‐ │ │ │ X │ X │
+ │ext using │ │ │ │ │
+ │secret keys │ │ │ │ │
+ ├──────────────┼───────┼──────┼─────────┼──────┤
+ │Stash session │ │ │ │ X │
+ │keys
+ ├──────────────┼───────┼──────┼─────────┼──────┤
+ │Delete
+ │stashed ses‐ │ │ │ │ │
+ │sion keys on │ │ │ │ │
+ │reindex │ │ │ │ │
+ └──────────────┴───────┴──────┴─────────┴──────┘
+
+ Stashed session keys are kept in the database as properties
+ associated with the message. See <b>session-key</b> in <a href='../notmuch-properties-7/'>notmuch-proper‐</a>
+ <a href='../notmuch-properties-7/'>ties</a>(7) for more details about how they can be useful.
+
+ Be aware that the notmuch index is likely sufficient (and a
+ stashed session key is certainly sufficient) to reconstruct the
+ cleartext of the message itself, so please ensure that the not‐
+ much message index is adequately protected. DO NOT USE
+ <b>index.decrypt=true</b> or <b>index.decrypt=nostash</b> without considering
+ the security of your index.
+
+ Default: <b>auto</b>.
+
+ <b>built</b>_<b>with.<name></b>
Compile time feature <name>. Current possibilities include "com‐
- pact" (see <a href='../notmuch-compact-1/'>notmuch-compact</a>(1)) and "field_processor" (see <a href='../notmuch-search-terms-7/'>not‐</a>
+ pact" (see <a href='../notmuch-compact-1/'>notmuch-compact</a>(1)) and "field_processor" (see <a href='../notmuch-search-terms-7/'>not‐</a>
<a href='../notmuch-search-terms-7/'>much-search-terms</a>(7)).
- <b>query.<name></b>
- Expansion for named query called <name>. See <a href='../notmuch-search-terms-7/'>not‐</a>
+ <b>query.<name></b> <b>[STORED</b> <b>IN</b> <b>DATABASE]</b>
+ Expansion for named query called <name>. See <a href='../notmuch-search-terms-7/'>not‐</a>
<a href='../notmuch-search-terms-7/'>much-search-terms</a>(7) for more information about named queries.
</pre>
of notmuch.
<b>NOTMUCH</b>_<b>CONFIG</b>
- Specifies the location of the notmuch configuration file. Not‐
- much will use ${HOME}/.notmuch-config if this variable is not
+ Specifies the location of the notmuch configuration file. Not‐
+ much will use ${HOME}/.notmuch-config if this variable is not
set.
</pre>
<h2>SEE ALSO</h2>
<pre>
- <a href='../notmuch-1/'>notmuch</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/'>notmuch-hooks</a>(5), <a href='../notmuch-insert-1/'>not‐</a>
- <a href='../notmuch-insert-1/'>much-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-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>not‐</a>
- <a href='../notmuch-tag-1/'>much-tag</a>(1)
+ <a href='../notmuch-1/'>notmuch</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/'>notmuch-hooks</a>(5), <a href='../notmuch-insert-1/'>not‐</a>
+ <a href='../notmuch-insert-1/'>much-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-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-properties-7/'>notmuch-properties</a>(7), <a href='../notmuch-show-1/'>not‐</a>
+ <a href='../notmuch-show-1/'>much-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
</pre>
<h2>AUTHOR</h2>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
<search-terms>.
Supported options for <b>count</b> include
- <b>--output=(messages|threads|files)</b>
+
+ <b>--output=(messages|threads|files)</b>
<b>messages</b>
Output the number of matching messages. This is the
messages due to duplicates (i.e. multiple files having
the same message-id).
- <b>--exclude=(true|false)</b>
- Specify whether to omit messages matching search.tag_exclude
- from the count (the default) or not.
-
- <b>--batch</b>
- Read queries from a file (stdin by default), one per line,
- and output the number of matching messages (or threads) to
- stdout, one per line. On an empty input line the count of all
- messages (or threads) in the database will be output. This
- option is not compatible with specifying search terms on the
- command line.
-
- <b>--lastmod</b>
- Append lastmod (counter for number of database updates) and
- UUID to the output. lastmod values are only comparable
- between databases with the same UUID.
-
- <b>--input=<filename></b>
- Read input from given file, instead of from stdin. Implies
- <b>--batch</b>.
+ <b>--exclude=(true|false)</b>
+ Specify whether to omit messages matching search.tag_exclude
+ from the count (the default) or not.
+
+ <b>--batch</b>
+ Read queries from a file (stdin by default), one per line, and
+ output the number of matching messages (or threads) to stdout,
+ one per line. On an empty input line the count of all messages
+ (or threads) in the database will be output. This option is not
+ compatible with specifying search terms on the command line.
+
+ <b>--lastmod</b>
+ Append lastmod (counter for number of database updates) and UUID
+ to the output. lastmod values are only comparable between data‐
+ bases with the same UUID.
+
+ <b>--input=<filename></b>
+ Read input from given file, instead of from stdin. Implies
+ <b>--batch</b>.
</pre>
<h2>SEE ALSO</h2>
<pre>
- <a href='../notmuch-1/'>notmuch</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-dump-1/'>notmuch-dump</a>(1), <a href='../notmuch-hooks-5/'>notmuch-hooks</a>(5), <a href='../notmuch-insert-1/'>not‐</a>
- <a href='../notmuch-insert-1/'>much-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-1/'>notmuch</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-dump-1/'>notmuch-dump</a>(1), <a href='../notmuch-hooks-5/'>notmuch-hooks</a>(5), <a href='../notmuch-insert-1/'>not‐</a>
+ <a href='../notmuch-insert-1/'>much-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-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>not‐</a>
<a href='../notmuch-tag-1/'>much-tag</a>(1)
</pre>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>dump</b> include
- <b>--gzip</b> Compress the output in a format compatible with <b>gzip</b>(1).
+ <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>--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>
+ <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>sage-id</u>>
+ form:
+
+ +<*encoded-tag*\ > +<*encoded-tag*\ > ... -- id:<*quoted-message-id*\ >
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>
+ the following form:
+
+ <*message-id*\ > **(** <*tag*\ > ... **)**
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.
- <b>--include=(config|properties|tags)</b>
+ <b>--include=(config|properties|tags)</b>
+ Control what kind of metadata is included in the output.
- Control what kind of metadata is included in the output.
- <b>config</b>
- Output configuration data stored in the database. Each line
- starts with "#@ ", followed by a space separated key-value
- pair. Both key and value are hex encoded if needed.
+ <b>config</b> Output configuration data stored in the database. Each
+ line starts with "#@ ", followed by a space separated
+ key-value pair. Both key and value are hex encoded if
+ needed.
<b>properties</b>
- Output per-message (key,value) metadata. Each line starts
- with "#= ", followed by a message id, and a space separated
- list of key=value pairs. pair. Ids, keys and values are hex
- encoded if needed.
+ Output per-message (key,value) metadata. Each line
+ starts with "#= ", followed by a message id, and a space
+ separated list of key=value pairs. Ids, keys and values
+ are hex encoded if needed. See <a href='../notmuch-properties-7/'>notmuch-properties</a>(7) for
+ more details.
- <b>tags</b>
- Output per-message boolean metadata, namely tags. See <u>format</u>
- above for description of the output.
+ <b>tags</b> Output per-message boolean metadata, namely tags. See
+ <u>format</u> above for description of the output.
- The default is to include all available types of data. The
+ The default is to include all available types of data. The
option can be specified multiple times to select some subset. As
- of version 2 of the dump format, there is a header line of the
- following form
+ of version 3 of the dump format, there is a header line of the
+ following form:
- #notmuch-dump <<u>format</u>>:<<u>version</u>> <<u>included</u>>
+ #notmuch-dump <*format*>:<*version*> <*included*>
where <<u>included</u>> is a comma separated list of the above options.
- <b>--output=<filename></b>
- Write output to given file instead of stdout.
+ <b>--output=<filename></b>
+ Write output to given file instead of stdout.
</pre>
<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-hooks-5/'>notmuch-hooks</a>(5), <a href='../notmuch-insert-1/'>not‐</a>
- <a href='../notmuch-insert-1/'>much-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-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>not‐</a>
- <a href='../notmuch-tag-1/'>much-tag</a>(1)
+ <a href='../notmuch-insert-1/'>much-insert</a>(1), <a href='../notmuch-new-1/'>notmuch-new</a>(1), <a href='../notmuch-properties-7/'>notmuch-properties</a>(7), <a href='../notmuch-reply-1/'>not‐</a>
+ <a href='../notmuch-reply-1/'>much-reply</a>(1), <a href='../notmuch-restore-1/'>notmuch-restore</a>(1), <a href='../notmuch-search-1/'>notmuch-search</a>(1), <a href='../notmuch-search-terms-7/'>not‐</a>
+ <a href='../notmuch-search-terms-7/'>much-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
</pre>
<h2>AUTHOR</h2>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>emacs-mua</b> include
- <b>-h,</b> <b>--help</b>
- Display help.
+ <b>-h,</b> <b>--help</b>
+ Display help.
- <b>-s,</b> <b>--subject=<subject></b>
- Specify the subject of the message.
+ <b>-s,</b> <b>--subject=<subject></b>
+ Specify the subject of the message.
- <b>--to=<to-address></b>
- Specify a recipient (To).
+ <b>--to=<to-address></b>
+ Specify a recipient (To).
- <b>-c,</b> <b>--cc=<cc-address></b>
- Specify a carbon-copy (Cc) recipient.
+ <b>-c,</b> <b>--cc=<cc-address></b>
+ Specify a carbon-copy (Cc) recipient.
- <b>-b,</b> <b>--bcc=<bcc-address></b>
- Specify a blind-carbon-copy (Bcc) recipient.
+ <b>-b,</b> <b>--bcc=<bcc-address></b>
+ Specify a blind-carbon-copy (Bcc) recipient.
- <b>-i,</b> <b>--body=<file></b>
- Specify a file to include into the body of the message.
+ <b>-i,</b> <b>--body=<file></b>
+ Specify a file to include into the body of the message.
- <b>--hello</b>
- Go to the Notmuch hello screen instead of the message compo‐
- sition window if no message composition parameters are given.
+ <b>--hello</b>
+ Go to the Notmuch hello screen instead of the message composi‐
+ tion window if no message composition parameters are given.
- <b>--no-window-system</b>
- Even if a window system is available, use the current termi‐
- nal.
+ <b>--no-window-system</b>
+ Even if a window system is available, use the current terminal.
- <b>--client</b>
- Use <b>emacsclient</b>, rather than <b>emacs</b>. For <b>emacsclient</b> to work,
- you need an already running Emacs with a server, or use
- <b>--auto-daemon</b>.
+ <b>--client</b>
+ Use <b>emacsclient</b>, rather than <b>emacs</b>. For <b>emacsclient</b> to work, you
+ need an already running Emacs with a server, or use <b>--auto-dae-</b>
+ <b>mon</b>.
- <b>--auto-daemon</b>
- Automatically start Emacs in daemon mode, if the Emacs server
- is not running. Applicable with <b>--client</b>. Implies <b>--cre-</b>
- <b>ate-frame</b>.
+ <b>--auto-daemon</b>
+ Automatically start Emacs in daemon mode, if the Emacs server is
+ not running. Applicable with <b>--client</b>. Implies <b>--create-frame</b>.
- <b>--create-frame</b>
- Create a new frame instead of trying to use the current Emacs
- frame. Applicable with <b>--client</b>. This will be required when
- Emacs is running (or automatically started with <b>--auto-dae-</b>
- <b>mon</b>) in daemon mode.
+ <b>--create-frame</b>
+ Create a new frame instead of trying to use the current Emacs
+ frame. Applicable with <b>--client</b>. This will be required when
+ Emacs is running (or automatically started with <b>--auto-daemon</b>)
+ in daemon mode.
- <b>--print</b>
- Output the resulting elisp to stdout instead of evaluating
- it.
+ <b>--print</b>
+ Output the resulting elisp to stdout instead of evaluating it.
- The supported positional parameters and short options are a compatible
+ The supported positional parameters and short options are a compatible
subset of the <b>mutt</b> MUA command-line options. The options and positional
- parameters modifying the message can't be combined with the mailto:
+ parameters modifying the message can't be combined with the mailto:
URL.
Options may be specified multiple times.
<b>EMACS</b> Name of emacs command to invoke. Defaults to "emacs".
<b>EMACSCLIENT</b>
- Name of emacsclient command to invoke. Defaults to "emac‐
+ Name of emacsclient command to invoke. Defaults to "emac‐
sclient".
</pre>
<h2>AUTHOR</h2>
<pre>
- Jani Nikula
+ Carl Worth and many others
</pre>
<h2>COPYRIGHT</h2>
<pre>
- 2014-2017, Jani Nikula
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
The currently available hooks are described below.
- <b>pre-new</b>
- This hook is invoked by the <b>new</b> command before scanning or
- importing new messages into the database. If this hook exits
- with a non-zero status, notmuch will abort further processing
- of the <b>new</b> command.
+ <b>pre-new</b>
+ This hook is invoked by the <b>new</b> command before scanning or
+ importing new messages into the database. If this hook exits
+ with a non-zero status, notmuch will abort further processing of
+ the <b>new</b> command.
- Typically this hook is used for fetching or delivering new
- mail to be imported into the database.
+ Typically this hook is used for fetching or delivering new mail
+ to be imported into the database.
- <b>post-new</b>
- This hook is invoked by the <b>new</b> command after new messages
- have been imported into the database and initial tags have
- been applied. The hook will not be run if there have been any
- errors during the scan or import.
+ <b>post-new</b>
+ This hook is invoked by the <b>new</b> command after new messages have
+ been imported into the database and initial tags have been
+ applied. The hook will not be run if there have been any errors
+ during the scan or import.
- Typically this hook is used to perform additional query-based
- tagging on the imported messages.
+ Typically this hook is used to perform additional query-based
+ tagging on the imported messages.
- <b>post-insert</b>
+ <b>post-insert</b>
This hook is invoked by the <b>insert</b> command after the message has
been delivered, added to the database, and initial tags have
been applied. The hook will not be run if there have been any
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Option arguments must appear before any tag operation arguments. Sup‐
ported options for <b>insert</b> include
- <b>--folder=<folder></b>
- Deliver the message to the specified folder, relative to the
- top-level directory given by the value of <b>database.path</b>. The
- default is to deliver to the top-level directory.
-
- <b>--create-folder</b>
- Try to create the folder named by the <b>--folder</b> option, if it
- does not exist. Otherwise the folder must already exist for
- mail delivery to succeed.
-
- <b>--keep</b> Keep the message file if indexing fails, and keep the message
- indexed if applying tags or maildir flag synchronization
- fails. Ignore these errors and return exit status 0 to indi‐
- cate successful mail delivery.
-
- <b>--no-hooks</b>
- Prevent hooks from being run.
+ <b>--folder=<</b>folder<b>></b>
+ Deliver the message to the specified folder, relative to the
+ top-level directory given by the value of <b>database.path</b>. The
+ default is the empty string, which means delivering to the
+ top-level directory.
+
+ <b>--create-folder</b>
+ Try to create the folder named by the <b>--folder</b> option, if it
+ does not exist. Otherwise the folder must already exist for mail
+ delivery to succeed.
+
+ <b>--keep</b> Keep the message file if indexing fails, and keep the message
+ indexed if applying tags or maildir flag synchronization fails.
+ Ignore these errors and return exit status 0 to indicate suc‐
+ cessful mail delivery.
+
+ <b>--no-hooks</b>
+ Prevent hooks from being run.
+
+ <b>--decrypt=(true|nostash|auto|false)</b>
+ If <b>true</b> and the message is encrypted, try to decrypt the message
+ while indexing, stashing any session keys discovered. If <b>auto</b>,
+ and notmuch already knows about a session key for the message,
+ it will try decrypting using that session key but will not try
+ to access the user's secret keys. If decryption is successful,
+ index the cleartext itself. Either way, the message is always
+ stored to disk in its original form (ciphertext).
+
+ <b>nostash</b> is the same as <b>true</b> except that it will not stash
+ newly-discovered session keys in the database.
+
+ Be aware that the index is likely sufficient (and a stashed ses‐
+ sion key is certainly sufficient) to reconstruct the cleartext
+ of the message itself, so please ensure that the notmuch message
+ index is adequately protected. DO NOT USE <b>--decrypt=true</b> or
+ <b>--decrypt=nostash</b> without considering the security of your
+ index.
+
+ See also <b>index.decrypt</b> in <a href='../notmuch-config-1/'>notmuch-config</a>(1).
</pre>
<h2>EXIT STATUS</h2>
<pre>
- This command returns exit status 0 on successful mail delivery,
- non-zero otherwise. The default is to indicate failed mail delivery on
- any errors, including message file delivery to the filesystem, message
- indexing to Notmuch database, changing tags, and synchronizing tags to
- maildir flags. The <b>--keep</b> option may be used to settle for successful
+ This command returns exit status 0 on successful mail delivery,
+ non-zero otherwise. The default is to indicate failed mail delivery on
+ any errors, including message file delivery to the filesystem, message
+ indexing to Notmuch database, changing tags, and synchronizing tags to
+ maildir flags. The <b>--keep</b> option may be used to settle for successful
message file delivery.
This command supports the following special exit status code for errors
- most likely to be temporary in nature, e.g. failure to get a database
+ most likely to be temporary in nature, e.g. failure to get a database
write lock.
<b>75</b> <b>(EX</b>_<b>TEMPFAIL)</b>
- A temporary failure occured; the user is invited to retry.
+ A temporary failure occurred; the user is invited to retry.
The exit status of the <b>post-insert</b> hook does not affect the exit status
of the <b>insert</b> command.
<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-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-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-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
</pre>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>new</b> include
- <b>--no-hooks</b>
- Prevents hooks from being run.
-
- <b>--quiet</b>
- Do not print progress or results.
+ <b>--no-hooks</b>
+ Prevents hooks from being run.
+
+ <b>--quiet</b>
+ Do not print progress or results.
+
+ <b>--decrypt=(true|nostash|auto|false)</b>
+ If <b>true</b>, when encountering an encrypted message, try to decrypt
+ it while indexing, and stash any discovered session keys. If
+ <b>auto</b>, try to use any session key already known to belong to this
+ message, but do not attempt to use the user's secret keys. If
+ decryption is successful, index the cleartext of the message.
+
+ Be aware that the index is likely sufficient (and the session
+ key is certainly sufficient) to reconstruct the cleartext of the
+ message itself, so please ensure that the notmuch message index
+ is adequately protected. DO NOT USE <b>--decrypt=true</b> or
+ <b>--decrypt=nostash</b> without considering the security of your
+ index.
+
+ See also <b>index.decrypt</b> in <a href='../notmuch-config-1/'>notmuch-config</a>(1).
</pre>
<h2>EXIT STATUS</h2>
This command supports the following special exit status code
<b>75</b> <b>(EX</b>_<b>TEMPFAIL)</b>
- A temporary failure occured; the user is invited to retry.
+ A temporary failure occurred; the user is invited to retry.
</pre>
<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-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-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-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>not‐</a>
<a href='../notmuch-tag-1/'>much-tag</a>(1)
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
--- /dev/null
+<h1>NOTMUCH-PROPERTIES(7)</h1>
+
+<h2>NAME</h2>
+<pre>
+ notmuch-properties - notmuch message property conventions and documen‐
+ tation
+</pre>
+
+<h2>SYNOPSIS</h2>
+<pre>
+ <b>notmuch</b> <b>count</b> <b>property:</b><<u>key</u>>=<<u>value</u>>
+
+ <b>notmuch</b> <b>search</b> <b>property:</b><<u>key</u>>=<<u>value</u>>
+
+ <b>notmuch</b> <b>show</b> <b>property:</b><<u>key</u>>=<<u>value</u>>
+
+ <b>notmuch</b> <b>reindex</b> <b>property:</b><<u>key</u>>=<<u>value</u>>
+
+ <b>notmuch</b> <b>tag</b> +<<u>tag</u>> <b>property:</b><<u>key</u>>=<<u>value</u>>
+
+ <b>notmuch</b> <b>dump</b> <b>--include=properties</b>
+
+ <b>notmuch</b> <b>restore</b> <b>--include=properties</b>
+</pre>
+
+<h2>DESCRIPTION</h2>
+<pre>
+ Several notmuch commands can search for, modify, add or remove proper‐
+ ties associated with specific messages. Properties are key/value
+ pairs, and a message can have more than one key/value pair for the same
+ key.
+
+ While users can select based on a specific property in their search
+ terms with the prefix <b>property:</b>, the notmuch command-line interface
+ does not provide mechanisms for modifying properties directly to the
+ user.
+
+ Instead, message properties are expected to be set and used programmat‐
+ ically, according to logic in notmuch itself, or in extensions to it.
+
+ Extensions to notmuch which make use of properties are encouraged to
+ report the specific properties used to the upstream notmuch project, as
+ a way of avoiding collisions in the property namespace.
+</pre>
+
+<h2>CONVENTIONS</h2>
+<pre>
+ Any property with a key that starts with "index." will be removed (and
+ possibly re-set) upon reindexing (see <a href='../notmuch-reindex-1/'>notmuch-reindex</a>(1)).
+</pre>
+
+<h2>MESSAGE PROPERTIES</h2>
+<pre>
+ The following properties are set by notmuch internally in the course of
+ its normal activity.
+
+ <b>index.decryption</b>
+ If a message contains encrypted content, and notmuch tries to
+ decrypt that content during indexing, it will add the property
+ <b>index.decryption=success</b> when the cleartext was successfully
+ indexed. If notmuch attempts to decrypt any part of a message
+ during indexing and that decryption attempt fails, it will add
+ the property <b>index.decryption=failure</b> to the message.
+
+ Note that it's possible for a single message to have both
+ <b>index.decryption=success</b> and <b>index.decryption=failure</b>. Consider
+ an encrypted e-mail message that contains another encrypted
+ e-mail message as an attachment -- if the outer message can be
+ decrypted, but the attached part cannot, then both properties
+ will be set on the message as a whole.
+
+ If notmuch never tried to decrypt an encrypted message during
+ indexing (which is the default, see <b>index.decrypt</b> in <a href='../notmuch-config-1/'>not‐</a>
+ <a href='../notmuch-config-1/'>much-config</a>(1)), then this property will not be set on that mes‐
+ sage.
+
+ <b>session-key</b>
+ When <a href='../notmuch-show-1/'>notmuch-show</a>(1) or <b>nomtuch-reply</b> encounters a message with an
+ encrypted part, if notmuch finds a <b>session-key</b> property associated
+ with the message, it will try that stashed session key for decryp‐
+ tion.
+
+ If you do not want to use any stashed session keys that might be
+ present, you should pass those programs <b>--decrypt=false</b>.
+
+ Using a stashed session key with "notmuch show" will speed up ren‐
+ dering of long encrypted threads. It also allows the user to
+ destroy the secret part of any expired encryption-capable subkey
+ while still being able to read any retained messages for which they
+ have stashed the session key. This enables truly deletable e-mail,
+ since (once the session key and asymmetric subkey are both
+ destroyed) there are no keys left that can be used to decrypt any
+ copy of the original message previously stored by an adversary.
+
+ However, access to the stashed session key for an encrypted message
+ permits full byte-for-byte reconstruction of the cleartext message.
+ This includes attachments, cryptographic signatures, and other mate‐
+ rial that cannot be reconstructed from the index alone.
+
+ See <b>index.decrypt</b> in <a href='../notmuch-config-1/'>notmuch-config</a>(1) for more details about how to
+ set notmuch's policy on when to store session keys.
+
+ The session key should be in the ASCII text form produced by GnuPG.
+ For OpenPGP, that consists of a decimal representation of the hash
+ algorithm used (identified by number from RFC 4880, e.g. 9 means
+ AES-256) followed by a colon, followed by a hexadecimal representa‐
+ tion of the algorithm-specific key. For example, an AES-128 key
+ might be stashed in a notmuch property as: <b>ses-</b>
+ <b>sion-key=7:14B16AF65536C28AF209828DFE34C9E0</b>.
+</pre>
+
+<h2>SEE ALSO</h2>
+<pre>
+ <a href='../notmuch-1/'>notmuch</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-dump-1/'>notmuch-dump</a>(1), <a href='../notmuch-insert-1/'>notmuch-insert</a>(1), <a href='../notmuch-new-1/'>not‐</a>
+ <a href='../notmuch-new-1/'>much-new</a>(1), <a href='../notmuch-reindex-1/'>notmuch-reindex</a>(1), <a href='../notmuch-reply-1/'>notmuch-reply</a>(1), <a href='../notmuch-restore-1/'>notmuch-restore</a>(1),
+ <a href='../notmuch-show-1/'>notmuch-show</a>(1), <b>*notmuch-search-terms</b>(7)
+</pre>
+
+<h2>AUTHOR</h2>
+<pre>
+ Carl Worth and many others
+</pre>
+
+<h2>COPYRIGHT</h2>
+<pre>
+ 2009-2018, Carl Worth and many others
+</pre>
+
+<h2>0.26</h2>
--- /dev/null
+<h1>NOTMUCH-REINDEX(1)</h1>
+
+<h2>NAME</h2>
+<pre>
+ notmuch-reindex - re-index matching messages
+</pre>
+
+<h2>SYNOPSIS</h2>
+<pre>
+ <b>notmuch</b> <b>reindex</b> [<u>option</u> ...] <<u>search-term</u>> ...
+</pre>
+
+<h2>DESCRIPTION</h2>
+<pre>
+ Re-index all messages matching the search terms.
+
+ See <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7) for details of the supported syntax for
+ <<u>search-term</u>>.
+
+ The <b>reindex</b> command searches for all messages matching the supplied
+ search terms, and re-creates the full-text index on these messages
+ using the supplied options.
+
+ Supported options for <b>reindex</b> include
+
+ <b>--decrypt=(true|nostash|auto|false)</b>
+ If <b>true</b>, when encountering an encrypted message, try to decrypt
+ it while reindexing, stashing any session keys discovered. If
+ <b>auto</b>, and notmuch already knows about a session key for the mes‐
+ sage, it will try decrypting using that session key but will not
+ try to access the user's secret keys. If decryption is success‐
+ ful, index the cleartext itself.
+
+ <b>nostash</b> is the same as <b>true</b> except that it will not stash
+ newly-discovered session keys in the database.
+
+ If <b>false</b>, notmuch reindex will also delete any stashed session
+ keys for all messages matching the search terms.
+
+ Be aware that the index is likely sufficient (and a stashed ses‐
+ sion key is certainly sufficient) to reconstruct the cleartext
+ of the message itself, so please ensure that the notmuch message
+ index is adequately protected. DO NOT USE <b>--decrypt=true</b> or
+ <b>--decrypt=nostash</b> without considering the security of your
+ index.
+
+ See also <b>index.decrypt</b> in <a href='../notmuch-config-1/'>notmuch-config</a>(1).
+</pre>
+
+<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-restore-1/'>notmuch-restore</a>(1), <a href='../notmuch-search-1/'>notmuch-search</a>(1), <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>not‐</a>
+ <a href='../notmuch-show-1/'>much-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
+</pre>
+
+<h2>AUTHOR</h2>
+<pre>
+ Carl Worth and many others
+</pre>
+
+<h2>COPYRIGHT</h2>
+<pre>
+ 2009-2018, Carl Worth and many others
+</pre>
+
+<h2>0.26</h2>
The resulting message template is output to stdout.
Supported options for <b>reply</b> include
- <b>--format=</b>(<b>default</b>|<b>json</b>|<b>sexp</b>|<b>headers-only</b>)
+
+ <b>--format=</b>(<b>default</b>|<b>json</b>|<b>sexp</b>|<b>headers-only</b>)
<b>default</b>
Includes subject and quoted message body as an RFC 2822
Only produces In-Reply-To, References, To, Cc, and Bcc
headers.
- <b>--format-version=N</b>
- Use the specified structured output format version. This is
- intended for programs that invoke <a href='../notmuch-1/'>notmuch</a>(1) internally. If
- omitted, the latest supported version will be used.
+ <b>--format-version=N</b>
+ Use the specified structured output format version. This is
+ intended for programs that invoke <a href='../notmuch-1/'>notmuch</a>(1) internally. If
+ omitted, the latest supported version will be used.
- <b>--reply-to=</b>(<b>all</b>|<b>sender</b>)
+ <b>--reply-to=</b>(<b>all</b>|<b>sender</b>)
- <b>all</b> <b>(default)</b>
+ <b>all</b> (default)
Replies to all addresses.
<b>sender</b> Replies only to the sender. If replying to user's own
ers in this order, and copy values from the first that
contains something other than only the user's addresses.
- <b>--decrypt</b>
- Decrypt any MIME encrypted parts found in the selected con‐
- tent (ie. "multipart/encrypted" parts). Status of the decryp‐
- tion will be reported (currently only supported with --for‐
- mat=json and --format=sexp) and on successful decryption the
- multipart/encrypted part will be replaced by the decrypted
- content.
+ <b>--decrypt=(false|auto|true)</b>
+ If <b>true</b>, decrypt any MIME encrypted parts found in the selected con‐
+ tent (i.e., "multipart/encrypted" parts). Status of the decryption
+ will be reported (currently only supported with --format=json and
+ --format=sexp), and on successful decryption the multipart/encrypted
+ part will be replaced by the decrypted content.
+
+ If <b>auto</b>, and a session key is already known for the message, then it
+ will be decrypted, but notmuch will not try to access the user's
+ secret keys.
+
+ Use <b>false</b> to avoid even automatic decryption.
+
+ Non-automatic decryption expects a functioning <b>gpg-agent</b>(1) to pro‐
+ vide any needed credentials. Without one, the decryption will likely
+ fail.
- Decryption expects a functioning <b>gpg-agent</b>(1) to provide any
- needed credentials. Without one, the decryption will fail.
+ Default: <b>auto</b>
See <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7) for details of the supported syntax for
<search-terms>.
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>restore</b> include
- <b>--accumulate</b>
- The union of the existing and new tags is applied, instead of
- replacing each message's tags as they are read in from the
- dump file.
-
- <b>--format=(sup|batch-tag|auto)</b>
- Notmuch restore supports two plain text dump formats, with
- each line specifying a message-id and a set of tags. For
- details of the actual formats, see <a href='../notmuch-dump-1/'>notmuch-dump</a>(1).
-
- <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 of your tags (or labels as sup calls
- them).
-
- <b>batch-tag</b>
- The <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. See <a href='../notmuch-dump-1/'>not‐</a>
- <a href='../notmuch-dump-1/'>much-dump</a>(1) for details on this format.
-
- <b>notmuch</b> <b>restore</b> updates the maildir flags according to
- tag changes if the <b>maildir.synchronize</b>_<b>flags</b> configu‐
- ration option is enabled. See <a href='../notmuch-config-1/'>notmuch-config</a>(1) for
- details.
-
- <b>auto</b> This option (the default) tries to guess the format
- from the input. For correctly formed input in either
- supported format, this heuristic, based the fact that
- batch-tag format contains no parentheses, should be
- accurate.
-
- <b>--include=(config|properties|tags)</b>
+ <b>--accumulate</b>
+ The union of the existing and new tags is applied, instead of
+ replacing each message's tags as they are read in from the dump
+ file.
+
+ <b>--format=(sup|batch-tag|auto)</b>
+ Notmuch restore supports two plain text dump formats, with each
+ line specifying a message-id and a set of tags. For details of
+ the actual formats, see <a href='../notmuch-dump-1/'>notmuch-dump</a>(1).
+
+ <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
+ of your tags (or labels as sup calls them).
+
+ <b>batch-tag</b>
+ The <b>batch-tag</b> dump format is intended to more robust
+ against malformed message-ids and tags containing white‐
+ space or non-<b>ascii</b>(7) characters. See <a href='../notmuch-dump-1/'>notmuch-dump</a>(1) for
+ details on this format.
+
+ <b>notmuch</b> <b>restore</b> updates the maildir flags according to
+ tag changes if the <b>maildir.synchronize</b>_<b>flags</b> configura‐
+ tion option is enabled. See <a href='../notmuch-config-1/'>notmuch-config</a>(1) for
+ details.
+
+ <b>auto</b> This option (the default) tries to guess the format from
+ the input. For correctly formed input in either supported
+ format, this heuristic, based the fact that batch-tag
+ format contains no parentheses, should be accurate.
+
+ <b>--include=(config|properties|tags)</b>
Control what kind of metadata is restored.
- <b>config</b>
- Restore configuration data to the database. Each configu‐
+
+ <b>config</b> Restore configuration data to the database. Each configu‐
ration line starts with "#@ ", followed by a space sepa‐
rated key-value pair. Both key and value are hex encoded
if needed.
- <b>properties</b>
- Output per-message (key,value) metadata. Each line
+ <b>properties</b>
+ Restore per-message (key,value) metadata. Each line
starts with "#= ", followed by a message id, and a space
- separated list of key=value pairs. pair. Ids, keys and
- values are hex encoded if needed.
+ separated list of key=value pairs. Ids, keys and values
+ are hex encoded if needed. See <a href='../notmuch-properties-7/'>notmuch-properties</a>(7) for
+ more details.
- <b>tags</b>
- Output per-message metadata, namely tags. See <u>format</u>
+ <b>tags</b> Restore per-message metadata, namely tags. See <u>format</u>
above for more details.
- The default is to restore all available types of data. The
+ The default is to restore all available types of data. The
option can be specified multiple times to select some subset.
- <b>--input=<filename></b>
- Read input from given file instead of stdin.
+ <b>--input=<filename></b>
+ Read input from given file instead of stdin.
</pre>
<h2>GZIPPED INPUT</h2>
<pre>
- <b>notmuch</b> <b>restore</b> will detect if the input is compressed in <b>gzip</b>(1) for‐
- mat and automatically decompress it while reading. This detection does
+ <b>notmuch</b> <b>restore</b> will detect if the input is compressed in <b>gzip</b>(1) for‐
+ mat and automatically decompress it while reading. This detection does
not depend on file naming and in particular works for standard input.
</pre>
<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-search-1/'>notmuch-search</a>(1), <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>not‐</a>
- <a href='../notmuch-tag-1/'>much-tag</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-properties-7/'>notmuch-proper‐</a>
+ <a href='../notmuch-properties-7/'>ties</a>(7), <a href='../notmuch-reply-1/'>notmuch-reply</a>(1), <a href='../notmuch-search-1/'>notmuch-search</a>(1), <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7),
+ <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
</pre>
<h2>AUTHOR</h2>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>search</b> include
- <b>--format=(json|sexp|text|text0)</b>
- Presents the results in either JSON, S-Expressions, newline
- character separated plain-text (default), or null character
- separated plain-text (compatible with <b>xargs</b>(1) -0 option
- where available).
+ <b>--format=</b>(<b>json</b>|<b>sexp</b>|<b>text</b>|<b>text0</b>)
+ Presents the results in either JSON, S-Expressions, newline
+ character separated plain-text (default), or null character sep‐
+ arated plain-text (compatible with <b>xargs</b>(1) -0 option where
+ available).
- <b>--format-version=N</b>
- Use the specified structured output format version. This is
- intended for programs that invoke <a href='../notmuch-1/'>notmuch</a>(1) internally. If
- omitted, the latest supported version will be used.
+ <b>--format-version=N</b>
+ Use the specified structured output format version. This is
+ intended for programs that invoke <a href='../notmuch-1/'>notmuch</a>(1) internally. If
+ omitted, the latest supported version will be used.
- <b>--output=(summary|threads|messages|files|tags)</b>
+ <b>--output=(summary|threads|messages|files|tags)</b>
<b>summary</b>
Output a summary of each thread with any message matching
the search terms. The summary includes the thread ID,
date, the number of messages in the thread (both the num‐
ber matched and the total number), the authors of the
- thread and the subject.
+ thread and the subject. In the case where a thread con‐
+ tains multiple files for some messages, the total number
+ of files is printed in parentheses (see below for an
+ example).
<b>threads</b>
- Output the thread IDs of all threads with any message
- matching the search terms, either one per line (--for‐
+ Output the thread IDs of all threads with any message
+ matching the search terms, either one per line (--for‐
mat=text), separated by null characters (--format=text0),
- as a JSON array (--format=json), or an S-Expression list
+ as a JSON array (--format=json), or an S-Expression list
(--format=sexp).
<b>messages</b>
- Output the message IDs of all messages matching the
- search terms, either one per line (--format=text), sepa‐
- rated by null characters (--format=text0), as a JSON
+ Output the message IDs of all messages matching the
+ search terms, either one per line (--format=text), sepa‐
+ rated by null characters (--format=text0), as a JSON
array (--format=json), or as an S-Expression list (--for‐
mat=sexp).
- <b>files</b> Output the filenames of all messages matching the search
- terms, either one per line (--format=text), separated by
+ <b>files</b> Output the filenames of all messages matching the search
+ terms, either one per line (--format=text), separated by
null characters (--format=text0), as a JSON array (--for‐
mat=json), or as an S-Expression list (--format=sexp).
- Note that each message may have multiple filenames asso‐
- ciated with it. All of them are included in the output
- (unless limited with the --duplicate=N option). This may
- be particularly confusing for <b>folder:</b> or <b>path:</b> searches
+ Note that each message may have multiple filenames asso‐
+ ciated with it. All of them are included in the output
+ (unless limited with the --duplicate=N option). This may
+ be particularly confusing for <b>folder:</b> or <b>path:</b> searches
in a specified directory, as the messages may have dupli‐
- cates in other directories that are included in the out‐
- put, although these files alone would not match the
+ cates in other directories that are included in the out‐
+ put, although these files alone would not match the
search.
- <b>tags</b> Output all tags that appear on any message matching the
- search terms, either one per line (--format=text), sepa‐
- rated by null characters (--format=text0), as a JSON
+ <b>tags</b> Output all tags that appear on any message matching the
+ search terms, either one per line (--format=text), sepa‐
+ rated by null characters (--format=text0), as a JSON
array (--format=json), or as an S-Expression list (--for‐
mat=sexp).
- <b>--sort=(newest-first|oldest-first)</b>
- This option can be used to present results in either chrono‐
- logical order (<b>oldest-first</b>) or reverse chronological order
- (<b>newest-first</b>).
-
- Note: The thread order will be distinct between these two
- options (beyond being simply reversed). When sorting by <b>old-</b>
- <b>est-first</b> the threads will be sorted by the oldest message in
- each thread, but when sorting by <b>newest-first</b> the threads
- will be sorted by the newest message in each thread.
-
- By default, results will be displayed in reverse chronologi‐
- cal order, (that is, the newest results will be displayed
- first).
-
- <b>--offset=[-]N</b>
- Skip displaying the first N results. With the leading '-',
- start at the Nth result from the end.
-
- <b>--limit=N</b>
- Limit the number of displayed results to N.
-
- <b>--exclude=(true|false|all|flag)</b>
- A message is called "excluded" if it matches at least one tag
- in search.tag_exclude that does not appear explicitly in the
- search terms. This option specifies whether to omit excluded
- messages in the search process.
-
- The default value, <b>true</b>, prevents excluded messages from
- matching the search terms.
-
- <b>all</b> additionally prevents excluded messages from appearing in
- displayed results, in effect behaving as though the excluded
- messages do not exist.
-
- <b>false</b> allows excluded messages to match search terms and
- appear in displayed results. Excluded messages are still
- marked in the relevant outputs.
-
- <b>flag</b> only has an effect when <b>--output=summary</b>. The output is
- almost identical to <b>false</b>, but the "match count" is the num‐
- ber of matching non-excluded messages in the thread, rather
- than the number of matching messages.
-
- <b>--duplicate=N</b>
- For <b>--output=files</b>, output the Nth filename associated with
- each message matching the query (N is 1-based). If N is
- greater than the number of files associated with the message,
- don't print anything.
-
- For <b>--output=messages</b>, only output message IDs of messages
- matching the search terms that have at least N filenames
- associated with them.
-
- Note that this option is orthogonal with the <b>folder:</b> search
- prefix. The prefix matches messages based on filenames. This
- option filters filenames of the matching messages.
+ <b>--sort=</b>(<b>newest-first</b>|<b>oldest-first</b>)
+ This option can be used to present results in either chronologi‐
+ cal order (<b>oldest-first</b>) or reverse chronological order (<b>new-</b>
+ <b>est-first</b>).
+
+ Note: The thread order will be distinct between these two
+ options (beyond being simply reversed). When sorting by <b>old-</b>
+ <b>est-first</b> the threads will be sorted by the oldest message in
+ each thread, but when sorting by <b>newest-first</b> the threads will
+ be sorted by the newest message in each thread.
+
+ By default, results will be displayed in reverse chronological
+ order, (that is, the newest results will be displayed first).
+
+ <b>--offset=[-]N</b>
+ Skip displaying the first N results. With the leading '-', start
+ at the Nth result from the end.
+
+ <b>--limit=N</b>
+ Limit the number of displayed results to N.
+
+ <b>--exclude=(true|false|all|flag)</b>
+ A message is called "excluded" if it matches at least one tag in
+ search.tag_exclude that does not appear explicitly in the search
+ terms. This option specifies whether to omit excluded messages
+ in the search process.
+
+ <b>true</b> (default)
+ Prevent excluded messages from matching the search terms.
+
+ <b>all</b> Additionally prevent excluded messages from appearing in
+ displayed results, in effect behaving as though the
+ excluded messages do not exist.
+
+ <b>false</b> Allow excluded messages to match search terms and appear
+ in displayed results. Excluded messages are still marked
+ in the relevant outputs.
+
+ <b>flag</b> Only has an effect when <b>--output=summary</b>. The output is
+ almost identical to <b>false</b>, but the "match count" is the
+ number of matching non-excluded messages in the thread,
+ rather than the number of matching messages.
+
+ <b>--duplicate=N</b>
+ For <b>--output=files</b>, output the Nth filename associated with each
+ message matching the query (N is 1-based). If N is greater than
+ the number of files associated with the message, don't print
+ anything.
+
+ For <b>--output=messages</b>, only output message IDs of messages
+ matching the search terms that have at least N filenames associ‐
+ ated with them.
+
+ Note that this option is orthogonal with the <b>folder:</b> search pre‐
+ fix. The prefix matches messages based on filenames. This option
+ filters filenames of the matching messages.
+</pre>
+
+<h2>EXAMPLE</h2>
+<pre>
+ The following shows an example of the summary output format, with one
+ message having multiple filenames.
+
+ % notmuch search date:today.. and tag:bad-news
+ thread:0000000000063c10 Today [1/1] Some Persun; To the bone (inbox unread)
+ thread:0000000000063c25 Today [1/1(2)] Ann Other; Bears (inbox unread)
+ thread:0000000000063c00 Today [1/1] A Thurd; Bites, stings, sad feelings (inbox unread)
</pre>
<h2>EXIT STATUS</h2>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
<b>notmuch</b> <b>dump</b> [--format=(batch-tag|sup)] [--] [--output=<<u>file</u>>] [--]
[<<u>search-term</u>> ...]
+ <b>notmuch</b> <b>reindex</b> [option ...] <<u>search-term</u>> ...
+
<b>notmuch</b> <b>search</b> [option ...] <<u>search-term</u>> ...
<b>notmuch</b> <b>show</b> [option ...] <<u>search-term</u>> ...
As a special case, a search string consisting of exactly a single
asterisk ("*") will match all messages.
+</pre>
+<h3> Search prefixes</h3>
+<pre>
In addition to free text, the following prefixes can be used to force
terms to match against specific portions of an email, (where <brackets>
- indicate user-supplied values):
-
- · from:<name-or-address>
-
- · from:/<regex>/
-
- · to:<name-or-address>
-
- · subject:<word-or-quoted-phrase>
-
- · subject:/<regex>/
-
- · attachment:<word>
-
- · mimetype:<word>
-
- · tag:<tag> (or is:<tag>)
-
- · id:<message-id>
-
- · thread:<thread-id>
-
- · folder:<maildir-folder>
-
- · path:<directory-path> or path:<directory-path>/**
-
- · date:<since>..<until>
+ indicate user-supplied values).
- · lastmod:<initial-revision>..<final-revision>
-
- · query:<name>
-
- · property:<key>=<value>
-
- The <b>from:</b> prefix is used to match the name or address of the sender of
- an email message.
-
- The <b>to:</b> prefix is used to match the names or addresses of any recipient
- of an email message, (whether To, Cc, or Bcc).
-
- Any term prefixed with <b>subject:</b> will match only text from the subject
- of an email. Searching for a phrase in the subject is supported by
- including quotation marks around the phrase, immediately following <b>sub-</b>
- <b>ject:</b>.
-
- If notmuch is built with <b>Xapian</b> <b>Field</b> <b>Processors</b> (see below) the <b>from:</b>
- and <b>subject</b> prefix can be also used to restrict the results to those
- whose from/subject value matches a regular expression (see <b>regex</b>(7))
- delimited with //.
+ If notmuch is built with <b>Xapian</b> <b>Field</b> <b>Processors</b> (see below) some of
+ the prefixes with <regex> forms can be also used to restrict the
+ results to those whose value matches a regular expression (see
+ <b>regex</b>(7)) delimited with //, for example:
notmuch search 'from:/bob@.*[.]example[.]com/'
- The <b>attachment:</b> prefix can be used to search for specific filenames (or
- extensions) of attachments to email messages.
-
- 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:
- 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
- <b>notmuch</b> <b>search</b>
-
- 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
- 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
- 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
- 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
- is in the specific directory/folder.
-
- 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:
-
- date:<since>..<until>
-
- See <b>DATE</b> <b>AND</b> <b>TIME</b> <b>SEARCH</b> below for details on the range expression, and
- supported syntax for <since> and <until> date and time expressions.
-
- The time range can also be specified using timestamps with a syntax of:
-
- <initial-timestamp>..<final-timestamp>
-
- Each timestamp is a number representing the number of seconds since
- 1970-01-01 00:00:00 UTC.
-
- The <b>lastmod:</b> prefix can be used to restrict the result by the database
- revision number of when messages were last modified (tags were
- added/removed or filenames changed). This is usually used in conjunc‐
- tion with the <b>--uuid</b> argument to <b>notmuch</b> <b>search</b> to find messages that
- have changed since an earlier query.
-
- The <b>query:</b> prefix allows queries to refer to previously saved queries
- added with <a href='../notmuch-config-1/'>notmuch-config</a>(1). Named queries are only available if not‐
- much is built with <b>Xapian</b> <b>Field</b> <b>Processors</b> (see below).
-
- The <b>property:</b> prefix searches for messages with a particular
- <key>=<value> property pair. Properties are used internally by notmuch
- (and extensions) to add metadata to messages. A given key can be
- present on a given message with several different values.
+ <b>from:<name-or-address></b> <b>or</b> <b>from:/<regex>/</b>
+ The <b>from:</b> prefix is used to match the name or address of the
+ sender of an email message.
+
+ <b>to:<name-or-address></b>
+ The <b>to:</b> prefix is used to match the names or addresses of any
+ recipient of an email message, (whether To, Cc, or Bcc).
+
+ <b>subject:<word-or-quoted-phrase></b> <b>or</b> <b>subject:/<regex>/</b>
+ Any term prefixed with <b>subject:</b> will match only text from the
+ subject of an email. Searching for a phrase in the subject is
+ supported by including quotation marks around the phrase, imme‐
+ diately following <b>subject:</b>.
+
+ <b>attachment:<word></b>
+ The <b>attachment:</b> prefix can be used to search for specific file‐
+ names (or extensions) of attachments to email messages.
+
+ <b>mimetype:<word></b>
+ The <b>mimetype:</b> prefix will be used to match text from the con‐
+ tent-types of MIME parts within email messages (as specified by
+ the sender).
+
+ <b>tag:<tag></b> <b>or</b> <b>tag:/<regex>/</b> <b>or</b> <b>is:<tag></b> <b>or</b> <b>is:/<regex>/</b>
+ 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>.
+
+ <b>id:<message-id></b> <b>or</b> <b>mid:<message-id></b> <b>or</b> <b>mid:/<regex>/</b>
+ For <b>id:</b> and <b>mid:</b>, message ID values are the literal contents of
+ the Message-ID: header of email messages, but without the '<',
+ '>' delimiters.
+
+ <b>thread:<thread-id></b>
+ The <b>thread:</b> prefix can be used with the thread ID values that
+ are generated internally by notmuch (and do not appear in email
+ messages). These thread ID values can be seen in the first col‐
+ umn of output from <b>notmuch</b> <b>search</b>
+
+ <b>path:<directory-path></b> <b>or</b> <b>path:<directory-path>/**</b> <b>or</b> <b>path:/<regex>/</b>
+ The <b>path:</b> prefix searches for email messages that are in partic‐
+ ular directories within the mail store. The directory must be
+ specified relative to the top-level maildir (and without the
+ leading slash). By default, <b>path:</b> matches messages in the speci‐
+ fied directory only. The "/**" suffix can be used to match mes‐
+ sages 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.
+
+ <b>path:</b> will find a message if <u>any</u> copy of that message is in the
+ specific directory.
+
+ <b>folder:<maildir-folder></b> <b>or</b> <b>folder:/<regex>/</b>
+ 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 includes messages in the "new" and "cur" subdirec‐
+ tories. The exact syntax 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 folders 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>.
+
+ <b>folder:</b> will find a message if <u>any</u> copy of that message is in
+ the specific folder.
+
+ <b>date:<since>..<until></b> <b>or</b> <b>date:<date></b>
+ 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).
+
+ See <b>DATE</b> <b>AND</b> <b>TIME</b> <b>SEARCH</b> below for details on the range expres‐
+ sion, and supported syntax for <since> and <until> date and time
+ expressions.
+
+ The time range can also be specified using timestamps with a
+ syntax of:
+
+ <initial-timestamp>..<final-timestamp>
+
+ Each timestamp is a number representing the number of seconds
+ since 1970-01-01 00:00:00 UTC.
+
+ <b>lastmod:<initial-revision>..<final-revision></b>
+ The <b>lastmod:</b> prefix can be used to restrict the result by the
+ database revision number of when messages were last modified
+ (tags were added/removed or filenames changed). This is usually
+ used in conjunction with the <b>--uuid</b> argument to <b>notmuch</b> <b>search</b>
+ to find messages that have changed since an earlier query.
+
+ <b>query:<name></b>
+ The <b>query:</b> prefix allows queries to refer to previously saved
+ queries added with <a href='../notmuch-config-1/'>notmuch-config</a>(1). Named queries are only
+ available if notmuch is built with <b>Xapian</b> <b>Field</b> <b>Processors</b> (see
+ below).
+
+ <b>property:<key>=<value></b>
+ The <b>property:</b> prefix searches for messages with a particular
+ <key>=<value> property pair. Properties are used internally by
+ notmuch (and extensions) to add metadata to messages. A given
+ key can be present on a given message with several different
+ values. See <a href='../notmuch-properties-7/'>notmuch-properties</a>(7) for more details.
</pre>
<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
+ 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
+ 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
+ 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
+ will return results where term1 is within 10 words of term2. The
threshold can be set like this:
notmuch search term1 NEAR/2 term2
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
+ same order as in the query. The threshold can be set the same as with
NEAR:
notmuch search term1 ADJ/7 term2
notmuch search details
notmuch search detail
- will all return identical results, because Xapian first "reduces" the
+ 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.
+ 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
+ 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. Certain <b>special</b> prefixes are processed
- by notmuch in a way not stricly fitting either of Xapian's built in
+ 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. Certain <b>special</b> prefixes are processed
+ by notmuch in a way not strictly fitting either of Xapian's built in
styles. The prefixes currently supported by notmuch are as follows.
<b>Boolean</b>
<h3> Terms and phrases</h3>
<pre>
- In general Xapian distinguishes between lists of terms and <b>phrases</b>.
+ 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.
+ 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 equivalent ways to write the same phrase.
· "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
+ bilistic prefixes such as <b>to:</b>, <b>from:</b>, and <b>subject:</b>. In particular
subject:(pizza free)
<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.
- date:<expr>..! can be used as a shorthand for date:<expr>..<expr>. The
- expansion takes place before interpretation, and thus, for example,
- date:monday..! matches from the beginning of Monday until the end of
- Monday. With <b>Xapian</b> <b>Field</b> <b>Processor</b> support (see below), non-range
- date queries such as date:yesterday will work, but otherwise will give
+ date:<expr>..! can be used as a shorthand for date:<expr>..<expr>. The
+ expansion takes place before interpretation, and thus, for example,
+ date:monday..! matches from the beginning of Monday until the end of
+ Monday. With <b>Xapian</b> <b>Field</b> <b>Processor</b> support (see below), non-range
+ date queries such as date:yesterday will work, but otherwise will give
unexpected results; if in doubt use date:yesterday..!
- 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.
</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>XAPIAN FIELD PROCESSORS</h2>
<pre>
- Certain optional features of the notmuch query processor rely on the
- presence of the Xapian field processor API. You can determine if your
- notmuch was built against a sufficiently recent version of Xapian by
+ Certain optional features of the notmuch query processor rely on the
+ presence of the Xapian field processor API. You can determine if your
+ notmuch was built against a sufficiently recent version of Xapian by
running
% notmuch config get built_with.field_processor
<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-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)
+ <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-reindex-1/'>notmuch-reindex</a>(1),
+ <b>notmuch-properties</b>(1), <b>*notmuch-reply</b>(1), <a href='../notmuch-restore-1/'>notmuch-restore</a>(1), <a href='../notmuch-search-1/'>not‐</a>
+ <a href='../notmuch-search-1/'>much-search</a>(1), <b>*notmuch-show</b>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
</pre>
<h2>AUTHOR</h2>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>show</b> include
- <b>--entire-thread=(true|false)</b>
- If true, <b>notmuch</b> <b>show</b> outputs all messages in the thread of
- any message matching the search terms; if false, it outputs
- only the matching messages. For <b>--format=json</b> and <b>--for-</b>
- <b>mat=sexp</b> this defaults to true. For other formats, this
- defaults to false.
-
- <b>--format=(text|json|sexp|mbox|raw)</b>
-
- <b>text</b> <b>(default</b> <b>for</b> <b>messages)</b>
- The default plain-text format has all text-content MIME
- parts decoded. Various components in the output, (<b>mes-</b>
- <b>sage</b>, <b>header</b>, <b>body</b>, <b>attachment</b>, and MIME <b>part</b>), will be
- delimited by easily-parsed markers. Each marker consists
- of a Control-L character (ASCII decimal 12), the name of
- the marker, and then either an opening or closing brace,
- ('{' or '}'), to either open or close the component. For
+ <b>--entire-thread=(true|false)</b>
+ If true, <b>notmuch</b> <b>show</b> outputs all messages in the thread of any
+ message matching the search terms; if false, it outputs only the
+ matching messages. For <b>--format=json</b> and <b>--format=sexp</b> this
+ defaults to true. For other formats, this defaults to false.
+
+ <b>--format=(text|json|sexp|mbox|raw)</b>
+
+ <b>text</b> (default for messages)
+ The default plain-text format has all text-content MIME
+ parts decoded. Various components in the output, (<b>mes-</b>
+ <b>sage</b>, <b>header</b>, <b>body</b>, <b>attachment</b>, and MIME <b>part</b>), will be
+ delimited by easily-parsed markers. Each marker consists
+ of a Control-L character (ASCII decimal 12), the name of
+ the marker, and then either an opening or closing brace,
+ ('{' or '}'), to either open or close the component. For
a multipart MIME message, these parts will be nested.
- <b>json</b> The output is formatted with Javascript Object Notation
- (JSON). This format is more robust than the text format
- for automated processing. The nested structure of multi‐
+ <b>json</b> The output is formatted with Javascript Object Notation
+ (JSON). This format is more robust than the text format
+ for automated processing. The nested structure of multi‐
part MIME messages is reflected in nested JSON output. By
- default JSON output includes all messages in a matching
- thread; that is, by default, <b>--format=json</b> sets
+ default JSON output includes all messages in a matching
+ thread; that is, by default, <b>--format=json</b> sets
<b>--entire-thread</b>. The caller can disable this behaviour by
setting <b>--entire-thread=false</b>. The JSON output is always
- encoded as UTF-8 and any message content included in the
+ encoded as UTF-8 and any message content included in the
output will be charset-converted to UTF-8.
- <b>sexp</b> The output is formatted as the Lisp s-expression (sexp)
- equivalent of the JSON format above. Objects are format‐
- ted as property lists whose keys are keywords (symbols
- preceded by a colon). True is formatted as <b>t</b> and both
- false and null are formatted as <b>nil</b>. As for JSON, the
+ <b>sexp</b> The output is formatted as the Lisp s-expression (sexp)
+ equivalent of the JSON format above. Objects are format‐
+ ted as property lists whose keys are keywords (symbols
+ preceded by a colon). True is formatted as <b>t</b> and both
+ false and null are formatted as <b>nil</b>. As for JSON, the
s-expression output is always encoded as UTF-8.
<b>mbox</b> All matching messages are output in the traditional, Unix
- mbox format with each message being prefixed by a line
- beginning with "From " and a blank line separating each
- message. Lines in the message content beginning with
+ mbox format with each message being prefixed by a line
+ beginning with "From " and a blank line separating each
+ message. Lines in the message content beginning with
"From " (preceded by zero or more '>' characters) have an
- additional '>' character added. This reversible escaping
+ additional '>' character added. This reversible escaping
is termed "mboxrd" format and described in detail here:
+ <u>http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/mail-mbox-formats.html</u>
- <u>http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/mail-mbox-formats.html</u>
-
- <b>raw</b> <b>(default</b> <b>if</b> <b>--part</b> <b>is</b> <b>given)</b>
- Write the raw bytes of the given MIME part of a message
+ <b>raw</b> (default if --part is given)
+ Write the raw bytes of the given MIME part of a message
to standard out. For this format, it is an error to spec‐
ify a query that matches more than one message.
- If the specified part is a leaf part, this outputs the
+ If the specified part is a leaf part, this outputs the
body of the part after performing content transfer decod‐
- ing (but no charset conversion). This is suitable for
+ ing (but no charset conversion). This is suitable for
saving attachments, for example.
- For a multipart or message part, the output includes the
- part headers as well as the body (including all child
- parts). No decoding is performed because multipart and
- message parts cannot have non-trivial content transfer
- encoding. Consumers of this may need to implement MIME
+ For a multipart or message part, the output includes the
+ part headers as well as the body (including all child
+ parts). No decoding is performed because multipart and
+ message parts cannot have non-trivial content transfer
+ encoding. Consumers of this may need to implement MIME
decoding and similar functions.
- <b>--format-version=N</b>
- Use the specified structured output format version. This is
- intended for programs that invoke <a href='../notmuch-1/'>notmuch</a>(1) internally. If
- omitted, the latest supported version will be used.
-
- <b>--part=N</b>
- Output the single decoded MIME part N of a single message.
- The search terms must match only a single message. Message
- parts are numbered in a depth-first walk of the message MIME
- structure, and are identified in the 'json', 'sexp' or 'text'
- output formats.
-
- Note that even a message with no MIME structure or a single
- body part still has two MIME parts: part 0 is the whole mes‐
- sage (headers and body) and part 1 is just the body.
-
- <b>--verify</b>
- Compute and report the validity of any MIME cryptographic
- signatures found in the selected content (ie. "multi‐
- part/signed" parts). Status of the signature will be reported
- (currently only supported with --format=json and --for‐
- mat=sexp), and the multipart/signed part will be replaced by
- the signed data.
-
- <b>--decrypt</b>
- Decrypt any MIME encrypted parts found in the selected con‐
- tent (ie. "multipart/encrypted" parts). Status of the decryp‐
- tion will be reported (currently only supported with --for‐
- mat=json and --format=sexp) and on successful decryption the
- multipart/encrypted part will be replaced by the decrypted
- content.
-
- Decryption expects a functioning <b>gpg-agent</b>(1) to provide any
- needed credentials. Without one, the decryption will fail.
-
- Implies --verify.
-
- <b>--exclude=(true|false)</b>
- Specify whether to omit threads only matching
- search.tag_exclude from the search results (the default) or
- not. In either case the excluded message will be marked with
- the exclude flag (except when output=mbox when there is
- nowhere to put the flag).
-
- If --entire-thread is specified then complete threads are
- returned regardless (with the excluded flag being set when
- appropriate) but threads that only match in an excluded mes‐
- sage are not returned when <b>--exclude=true.</b>
-
- The default is <b>--exclude=true.</b>
-
- <b>--body=(true|false)</b>
- If true (the default) <b>notmuch</b> <b>show</b> includes the bodies of the
- messages in the output; if false, bodies are omitted.
- <b>--body=false</b> is only implemented for the json and sexp for‐
- mats and it is incompatible with <b>--part</b> <b>></b> <b>0.</b>
-
- This is useful if the caller only needs the headers as
- body-less output is much faster and substantially smaller.
-
- <b>--include-html</b>
- Include "text/html" parts as part of the output (currently
- only supported with --format=json and --format=sexp). By
- default, unless <b>--part=N</b> is used to select a specific part or
- <b>--include-html</b> is used to include all "text/html" parts, no
- part with content type "text/html" is included in the output.
+ <b>--format-version=N</b>
+ Use the specified structured output format version. This is
+ intended for programs that invoke <a href='../notmuch-1/'>notmuch</a>(1) internally. If
+ omitted, the latest supported version will be used.
+
+ <b>--part=N</b>
+ Output the single decoded MIME part N of a single message. The
+ search terms must match only a single message. Message parts are
+ numbered in a depth-first walk of the message MIME structure,
+ and are identified in the 'json', 'sexp' or 'text' output for‐
+ mats.
+
+ Note that even a message with no MIME structure or a single body
+ part still has two MIME parts: part 0 is the whole message
+ (headers and body) and part 1 is just the body.
+
+ <b>--verify</b>
+ Compute and report the validity of any MIME cryptographic signa‐
+ tures found in the selected content (ie. "multipart/signed"
+ parts). Status of the signature will be reported (currently only
+ supported with --format=json and --format=sexp), and the multi‐
+ part/signed part will be replaced by the signed data.
+
+ <b>--decrypt=(false|auto|true)</b>
+ If <b>true</b>, decrypt any MIME encrypted parts found in the selected
+ content (i.e. "multipart/encrypted" parts). Status of the
+ decryption will be reported (currently only supported with
+ --format=json and --format=sexp) and on successful decryption
+ the multipart/encrypted part will be replaced by the decrypted
+ content.
+
+ If <b>auto</b>, and a session key is already known for the message,
+ then it will be decrypted, but notmuch will not try to access
+ the user's keys.
+
+ Use <b>false</b> to avoid even automatic decryption.
+
+ Non-automatic decryption expects a functioning <b>gpg-agent</b>(1) to
+ provide any needed credentials. Without one, the decryption will
+ fail.
+
+ Note: <b>true</b> implies --verify.
+
+ Default: <b>auto</b>
+
+ <b>--exclude=(true|false)</b>
+ Specify whether to omit threads only matching search.tag_exclude
+ from the search results (the default) or not. In either case the
+ excluded message will be marked with the exclude flag (except
+ when output=mbox when there is nowhere to put the flag).
+
+ If --entire-thread is specified then complete threads are
+ returned regardless (with the excluded flag being set when
+ appropriate) but threads that only match in an excluded message
+ are not returned when <b>--exclude=true.</b>
+
+ The default is <b>--exclude=true.</b>
+
+ <b>--body=(true|false)</b>
+ If true (the default) <b>notmuch</b> <b>show</b> includes the bodies of the
+ messages in the output; if false, bodies are omitted.
+ <b>--body=false</b> is only implemented for the json and sexp formats
+ and it is incompatible with <b>--part</b> <b>></b> <b>0.</b>
+
+ This is useful if the caller only needs the headers as body-less
+ output is much faster and substantially smaller.
+
+ <b>--include-html</b>
+ Include "text/html" parts as part of the output (currently only
+ supported with --format=json and --format=sexp). By default,
+ unless <b>--part=N</b> is used to select a specific part or
+ <b>--include-html</b> is used to include all "text/html" parts, no part
+ with content type "text/html" is included in the output.
A common use of <b>notmuch</b> <b>show</b> is to display a single thread of email
messages. For this, use a search term of "thread:<thread-id>" as can be
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>
Supported options for <b>tag</b> include
- <b>--remove-all</b>
- Remove all tags from each message matching the search terms
- before applying the tag changes appearing on the command
- line. This means setting the tags of each message to the
- tags to be added. If there are no tags to be added, the mes‐
- sages will have no tags.
-
- <b>--batch</b>
- Read batch tagging operations from a file (stdin by default).
- This is more efficient than repeated <b>notmuch</b> <b>tag</b> invocations.
- See <u>TAG</u> <u>FILE</u> <u>FORMAT</u> below for the input format. This option
- is not compatible with specifying tagging on the command
- line.
-
- <b>--input=<filename></b>
- Read input from given file, instead of from stdin. Implies
- <b>--batch</b>.
+ <b>--remove-all</b>
+ Remove all tags from each message matching the search terms
+ before applying the tag changes appearing on the command line.
+ This means setting the tags of each message to the tags to be
+ added. If there are no tags to be added, the messages will have
+ no tags.
+
+ <b>--batch</b>
+ Read batch tagging operations from a file (stdin by default).
+ This is more efficient than repeated <b>notmuch</b> <b>tag</b> invocations.
+ See <u>TAG</u> <u>FILE</u> <u>FORMAT</u> below for the input format. This option is
+ not compatible with specifying tagging on the command line.
+
+ <b>--input=<filename></b>
+ Read input from given file, instead of from stdin. Implies
+ <b>--batch</b>.
</pre>
<h2>TAG FILE FORMAT</h2>
+<<u>tag</u>>|-<<u>tag</u>> [...] [--] <<u>query</u>>
- Each line is interpreted similarly to <b>notmuch</b> <b>tag</b> command line argu‐
+ Each line is interpreted similarly to <b>notmuch</b> <b>tag</b> command line argu‐
ments. The delimiter is one or more spaces ' '. Any characters in <<u>tag</u>>
- <b>may</b> be hex-encoded with %NN where NN is the hexadecimal value of the
- character. To hex-encode a character with a multi-byte UTF-8 encoding,
- hex-encode each byte. Any spaces in <tag> <b>must</b> be hex-encoded as %20.
+ <b>may</b> be hex-encoded with %NN where NN is the hexadecimal value of the
+ character. To hex-encode a character with a multi-byte UTF-8 encoding,
+ hex-encode each byte. Any spaces in <tag> <b>must</b> be hex-encoded as %20.
Any characters that are not part of <<u>tag</u>> <b>must</b> <b>not</b> be hex-encoded.
- In the future tag:"tag with spaces" style quoting may be supported for
- <<u>tag</u>> as well; for this reason all double quote characters in <<u>tag</u>>
+ In the future tag:"tag with spaces" style quoting may be supported for
+ <<u>tag</u>> as well; for this reason all double quote characters in <<u>tag</u>>
<b>should</b> be hex-encoded.
- The <<u>query</u>> should be quoted using Xapian boolean term quoting rules:
- if a term contains whitespace or a close paren or starts with a double
- quote, it must be enclosed in double quotes (not including any prefix)
- and double quotes inside the term must be doubled (see below for exam‐
+ The <<u>query</u>> should be quoted using Xapian boolean term quoting rules:
+ if a term contains whitespace or a close paren or starts with a double
+ quote, it must be enclosed in double quotes (not including any prefix)
+ and double quotes inside the term must be doubled (see below for exam‐
ples).
Leading and trailing space ' ' is ignored. Empty lines and lines begin‐
<h3> EXAMPLE</h3>
<pre>
- The following shows a valid input to batch tagging. Note that only the
- isolated '*' acts as a wildcard. Also note the two different quotings
+ The following shows a valid input to batch tagging. Note that only the
+ isolated '*' acts as a wildcard. Also note the two different quotings
of the tag <b>space</b> <b>in</b> <b>tags</b>
+winner *
<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-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>not‐</a>
<a href='../notmuch-show-1/'>much-show</a>(1),
</pre>
<h2>COPYRIGHT</h2>
<pre>
- 2009-2017, Carl Worth and many others
+ 2009-2018, Carl Worth and many others
</pre>
-<h2>0.24</h2>
+<h2>0.26</h2>