1NOTMUCH-PROPERTIES(7)               notmuch              NOTMUCH-PROPERTIES(7)
2
3
4

NAME

6       notmuch-properties  - notmuch message property conventions and documen‐
7       tation
8

SYNOPSIS

10       notmuch count property:<key>=<value>
11
12       notmuch search property:<key>=<value>
13
14       notmuch show property:<key>=<value>
15
16       notmuch reindex property:<key>=<value>
17
18       notmuch tag +<tag> property:<key>=<value>
19
20       notmuch dump --include=properties
21
22       notmuch restore --include=properties
23

DESCRIPTION

25       Several notmuch commands can search for, modify, add or remove  proper‐
26       ties  associated  with  specific  messages.   Properties  are key/value
27       pairs, and a message can have more than one key/value pair for the same
28       key.
29
30       While  users  can  select  based on a specific property in their search
31       terms with the prefix property:,  the  notmuch  command-line  interface
32       does  not  provide  mechanisms for modifying properties directly to the
33       user.
34
35       Instead, message properties are expected to be set and used programmat‐
36       ically, according to logic in notmuch itself, or in extensions to it.
37
38       Extensions  to  notmuch  which make use of properties are encouraged to
39       report the specific properties used to the upstream notmuch project, as
40       a way of avoiding collisions in the property namespace.
41

CONVENTIONS

43       Any  property with a key that starts with "index." will be removed (and
44       possibly re-set) upon reindexing (see notmuch-reindex).
45

MESSAGE PROPERTIES

47       The following properties are set by notmuch internally in the course of
48       its normal activity.
49
50       index.decryption
51              If  a  message  contains encrypted content, and notmuch tries to
52              decrypt that content during indexing, it will add  the  property
53              index.decryption=success when the cleartext was successfully in‐
54              dexed.  If notmuch attempts to decrypt any  part  of  a  message
55              during  indexing  and that decryption attempt fails, it will add
56              the property index.decryption=failure to the message.
57
58              Note that it's possible for a single message to  have  both  in‐
59              dex.decryption=success  and  index.decryption=failure.  Consider
60              an encrypted e-mail  message  that  contains  another  encrypted
61              e-mail  message  as an attachment -- if the outer message can be
62              decrypted, but the attached part cannot,  then  both  properties
63              will be set on the message as a whole.
64
65              If  notmuch  never  tried to decrypt an encrypted message during
66              indexing  (which  is   the   default,   see   index.decrypt   in
67              notmuch-config), then this property will not be set on that mes‐
68              sage.
69
70       session-key
71              When notmuch-show or notmuch-reply encounters a message with  an
72              encrypted  part, if notmuch finds a session-key property associ‐
73              ated with the message, it will try that stashed session key  for
74              decryption.
75
76              If you do not want to use any stashed session keys that might be
77              present, you should pass those programs --decrypt=false.
78
79              Using a stashed session key with "notmuch show"  will  speed  up
80              rendering of long encrypted threads.  It also allows the user to
81              destroy the secret part of any expired encryption-capable subkey
82              while  still  being able to read any retained messages for which
83              they have stashed the session key.  This enables truly deletable
84              e-mail,  since  (once  the session key and asymmetric subkey are
85              both destroyed) there are no keys left that can be used  to  de‐
86              crypt  any  copy of the original message previously stored by an
87              adversary.
88
89              However, access to the stashed session key for an encrypted mes‐
90              sage  permits full byte-for-byte reconstruction of the cleartext
91              message.  This includes attachments,  cryptographic  signatures,
92              and  other  material that cannot be reconstructed from the index
93              alone.
94
95              See index.decrypt in notmuch-config for more details  about  how
96              to set notmuch's policy on when to store session keys.
97
98              The  session  key  should  be in the ASCII text form produced by
99              GnuPG.  For OpenPGP, that consists of a  decimal  representation
100              of  the hash algorithm used (identified by number from RFC 4880,
101              e.g. 9 means AES-256) followed by a colon, followed by  a  hexa‐
102              decimal representation of the algorithm-specific key.  For exam‐
103              ple, an AES-128 key might be stashed in a notmuch  property  as:
104              session-key=7:14B16AF65536C28AF209828DFE34C9E0.
105
106       index.repaired
107              Some  messages  arrive in forms that are confusing to view; they
108              can be mangled by mail transport agents,  or  the  sending  mail
109              user  agent  may  structure them in a way that is confusing.  If
110              notmuch knows how to both detect and repair such  a  problematic
111              message, it will do so during indexing.
112
113              If  it applies a message repair during indexing, it will use the
114              index.repaired property to note the type of  repair(s)  it  per‐
115              formed.
116
117              index.repaired=skip-protected-headers-legacy-display   indicates
118              that when indexing the cleartext of an encrypted  message,  not‐
119              much  skipped  over  a "legacy-display" text/rfc822-headers part
120              that it found in that message, since it was able  to  index  the
121              built-in protected headers directly.
122
123              index.repaired=mixedup  indicates the repair of a "Mixed Up" en‐
124              crypted PGP/MIME message, a mangling typically produced  by  Mi‐
125              crosoft's             Exchange             MTA.              See
126              https://tools.ietf.org/html/draft-dkg-openpgp-pgpmime-message-mangling
127              for more information.
128

SEE ALSO

130       notmuch,  notmuch-config,  notmuch-dump,  notmuch-insert,  notmuch-new,
131       notmuch-reindex, notmuch-reply, notmuch-restore,  notmuch-search-terms,
132       notmuch-show
133

AUTHOR

135       Carl Worth and many others
136
138       2009-2023, Carl Worth and many others
139
140
141
142
1430.37                             Jan 19, 2023            NOTMUCH-PROPERTIES(7)
Impressum