Provided by: notmuch_0.38-2ubuntu1_amd64 bug

NAME

       notmuch-show - show messages matching the given search terms

SYNOPSIS

       notmuch show [option ...] <search-term> ...

DESCRIPTION

       Shows all messages matching the search terms.

       See notmuch-search-terms for details of the supported syntax for <search-terms>.

       The  messages  will  be  grouped  and  sorted  based  on  the  threading (all replies to a
       particular message will appear immediately after that message in date order).  The  output
       is  not  indented by default, but depth tags are printed so that proper indentation can be
       performed by a post-processor (such as the emacs interface to notmuch).

       Supported options for show include

       --duplicate=N
              Output duplicate number N. The numbering starts from 1, and matches the order  used
              by search --duplicate and search --output=files

       --entire-thread=(true|false)
              If  true,  notmuch  show outputs all messages in the thread of any message matching
              the  search  terms;  if  false,  it  outputs  only  the  matching   messages.   For
              --format=json  and  --format=sexp  this  defaults  to true. For other formats, this
              defaults to false.

       --format=(text|json|sexp|mbox|raw)

              text (default for messages)
                     The default plain-text format  has  all  text-content  MIME  parts  decoded.
                     Various  components  in  the output, (message, header, body, attachment, and
                     MIME part), 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.

              json   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 multipart MIME messages is reflected in nested JSON output.  By
                     default  JSON output includes all messages in a matching thread; that is, by
                     default, --format=json sets --entire-thread. The  caller  can  disable  this
                     behaviour  by  setting  --entire-thread=false.   The  JSON  output is always
                     encoded as UTF-8 and any message content included  in  the  output  will  be
                     charset-converted to UTF-8.

              sexp   The  output  is  formatted as the Lisp s-expression (sexp) equivalent of the
                     JSON format above. Objects are formatted as property lists  whose  keys  are
                     keywords  (symbols  preceded  by  a  colon). True is formatted as t and both
                     false and null are formatted as nil. As for JSON, the s-expression output is
                     always encoded as UTF-8.

              mbox   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
                     "From " (preceded by zero or more '>' characters)  have  an  additional  '>'
                     character  added.  This  reversible  escaping  is termed "mboxrd" format and
                     described in detail here:
                        http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/mail-mbox-formats.html

              raw (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 specify a query that matches  more  than  one
                     message.

                     If  the  specified  part  is  a leaf part, this outputs the body of the part
                     after performing content transfer decoding (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 decoding and  similar
                     functions.

       --format-version=N
              Use  the  specified structured output format version. This is intended for programs
              that invoke notmuch internally. If omitted, the latest supported  version  will  be
              used.

       --part=N
              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 message (headers and body) and part 1 is just the
              body.

       --sort=(newest-first|oldest-first)
              This  option  can  be  used  to  present  results  in  either  chronological  order
              (oldest-first) or reverse chronological order (newest-first).

              Only  threads  as  a  whole are reordered.  Ordering of messages within each thread
              will not be affected by this flag, since that order is  always  determined  by  the
              thread's replies.

              By default, results will be displayed in reverse chronological order, (that is, the
              newest results will be displayed first).

       --offset=[-]N
              Skip displaying the first N results. With the leading '-', start at the Nth  result
              from the end.

       --limit=N
              Limit the number of displayed results to N.

       --verify
              Compute  and  report the validity of any MIME cryptographic signatures found in the
              selected content (e.g., "multipart/signed" parts). Status of the signature will  be
              reported  (currently  only supported with --format=json and --format=sexp), and the
              multipart/signed part will be replaced by the signed data.

       --decrypt=(false|auto|true|stash)
              If true, decrypt any MIME encrypted parts found  in  the  selected  content  (e.g.,
              "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.

              stash  behaves  like  true,  but  upon successful decryption it will also stash the
              message's session key in the database, and index  the  cleartext  of  the  message,
              enabling automatic decryption in the future.

              If  auto,  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 false to avoid even automatic decryption.

              Non-automatic decryption (stash or true, in the absence of a stashed  session  key)
              expects  a functioning gpg-agent(1) to provide any needed credentials. Without one,
              the decryption will fail.

              Note: setting either true or stash here implies --verify.

              Here is a table that summarizes each of these policies:

                               ┌─────────────────┬───────┬──────┬──────┬───────┐
                               │                 │ false │ auto │ true │ stash │
                               ├─────────────────┼───────┼──────┼──────┼───────┤
                               │Show   cleartext │       │ X    │ X    │ X     │
                               │if  session  key │       │      │      │       │
                               │is already known │       │      │      │       │
                               ├─────────────────┼───────┼──────┼──────┼───────┤
                               │Use secret  keys │       │      │ X    │ X     │
                               │to          show │       │      │      │       │
                               │cleartext        │       │      │      │       │
                               ├─────────────────┼───────┼──────┼──────┼───────┤
                               │Stash any  newly │       │      │      │ X     │
                               │recovered        │       │      │      │       │
                               │session    keys, │       │      │      │       │
                               │reindexing       │       │      │      │       │
                               │message if found │       │      │      │       │
                               └─────────────────┴───────┴──────┴──────┴───────┘

              Note: --decrypt=stash requires write access to the  database.   Otherwise,  notmuch
              show operates entirely in read-only mode.

              Default: auto

       --exclude=(true|false)
              Specify  whether  to omit threads only matching search.exclude_tags 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 --exclude=true.

              The default is --exclude=true.

       --body=(true|false)
              If true (the default) notmuch show includes the  bodies  of  the  messages  in  the
              output;  if  false,  bodies  are omitted.  --body=false is only implemented for the
              text, json and sexp formats and it is incompatible with --part > 0.

              This is useful if the caller only needs the headers as  body-less  output  is  much
              faster and substantially smaller.

       --include-html
              Include  "text/html"  parts  as  part  of the output (currently only supported with
              --format=text, --format=json and --format=sexp). By  default,  unless  --part=N  is
              used to select a specific part or --include-html is used to include all "text/html"
              parts, no part with content type "text/html" is included in the output.

       A common use of notmuch show is to display a single thread of email  messages.  For  this,
       use  a  search  term  of "thread:<thread-id>" as can be seen in the first column of output
       from the notmuch-search command.

CONFIGURATION

       Structured  output  (json  /   sexp)   is   influenced   by   the   configuration   option
       show.extra_headers. See notmuch-config for details.

EXIT STATUS

       This command supports the following special exit status codes

       20     The requested format version is too old.

       21     The requested format version is too new.

SEE ALSO

       notmuch,   notmuch-config,  notmuch-count,  notmuch-dump,  notmuch-hooks,  notmuch-insert,
       notmuch-new,   notmuch-reply,   notmuch-restore,   notmuch-search,   notmuch-search-terms,
       notmuch-tag

AUTHOR

       Carl Worth and many others

COPYRIGHT

       2009-2023, Carl Worth and many others