]> git.cworth.org Git - notmuch-wiki/blobdiff - initial_tagging.mdwn
News for release 0.38.3
[notmuch-wiki] / initial_tagging.mdwn
index c7bed037a377fa3670fd2f2c67b75ac03c1a9d33..44243e031a1651db7c5db0b818d2e49ccdc1b0d7 100644 (file)
@@ -4,9 +4,17 @@
 This page collects scripts and strategies for organizing mail using
 notmuch and doing automated initial tagging.
 
 This page collects scripts and strategies for organizing mail using
 notmuch and doing automated initial tagging.
 
-Here's a very general and ad-hoc approach to initial message tagging.
 The `[new]` config section allows you to control which tags new messages
 The `[new]` config section allows you to control which tags new messages
-receive.  This sets all new messages to get the *new* tag:
+receive. By default, `notmuch config` will use the tags *inbox* and *unread*.
+
+If `maildir.synchronize_flags` is true (which is the default), Maildir flags 
+have precedence over the initial tags. Thus an already read mail gets its 
+initial *unread* tag correctly removed.
+
+## The *new* tag approach
+
+Here's another very general and ad-hoc approach to initial message tagging, 
+which sets all new messages to get the *new* tag:
 
     [new]
     tags=new;
 
     [new]
     tags=new;
@@ -28,25 +36,39 @@ following:
     # finally, retag all "new" messages "inbox" and "unread"
     notmuch tag +inbox +unread -new -- tag:new
 
     # finally, retag all "new" messages "inbox" and "unread"
     notmuch tag +inbox +unread -new -- tag:new
 
+Note that the command above will mark a new but already-read mail as unread.
+
 Since the post-processing is only acting on a few messages, it is
 generally extremely fast.
 
 You can use the `post-new` hook, which is automatically run after `notmuch new`,
 to do post-processing. See `man notmuch-hooks` for details on hooks.
 
 Since the post-processing is only acting on a few messages, it is
 generally extremely fast.
 
 You can use the `post-new` hook, which is automatically run after `notmuch new`,
 to do post-processing. See `man notmuch-hooks` for details on hooks.
 
+## Tagging based on content
+
+Since notmuch currently does not index arbitrary headers, it can be
+useful to tag based on content.  Here is a snippet that would fit with
+the 'new' tag approach discussed above.
+
+    for mid in $(notmuch search --output=messages tag:new); do
+        if notmuch show --format=raw "$mid" 2>/dev/null | awk '!NF{exit 1} /^X-Spam_bar: \+\+\+\+\+\+\+\+/ {exit 0}'; then
+        notmuch tag +spam "$mid"
+        fi
+    done
+
 
 ## Other solutions
 
 
 ## Other solutions
 
-* [Carl Worth's approach to tagging](http://notmuchmail.org/pipermail/notmuch/2010/001691.html). It
+* [Carl Worth's approach to tagging](https://notmuchmail.org/pipermail/notmuch/2010/001691.html). It
   is email id:87r5o8stbj.fsf@yoom.home.cworth.org in the notmuch
   mailing list archives.
 
 
   is email id:87r5o8stbj.fsf@yoom.home.cworth.org in the notmuch
   mailing list archives.
 
 
-* [One user's setup](http://notmuchmail.org/pipermail/notmuch/2010/001690.html)
+* [One user's setup](https://notmuchmail.org/pipermail/notmuch/2010/001690.html)
   (id:87hbp5j9dv.fsf@hackervisions.org), which includes using the
   inbox tag as a "new mail" flag.
 
   (id:87hbp5j9dv.fsf@hackervisions.org), which includes using the
   inbox tag as a "new mail" flag.
 
-* [Another user's setup](http://notmuchmail.org/pipermail/notmuch/2011/003976.html)
+* [Another user's setup](https://notmuchmail.org/pipermail/notmuch/2011/003976.html)
   (id:"87tyfu3k5a.fsf@gmail.com"), which uses a dedicated tag for
   marking new mail, which is then sorted with a python script using
   Bogofilter for spam detection.  This is generally a great deal
   (id:"87tyfu3k5a.fsf@gmail.com"), which uses a dedicated tag for
   marking new mail, which is then sorted with a python script using
   Bogofilter for spam detection.  This is generally a great deal
@@ -58,14 +80,18 @@ to do post-processing. See `man notmuch-hooks` for details on hooks.
   means for dealing with a large flux of messages with a low
   signal-to-noise.
 
   means for dealing with a large flux of messages with a low
   signal-to-noise.
 
-* [afew](https://github.com/teythoon/afew) is an initial tagging
+* [afew](https://github.com/afewmail/afew) is an initial tagging
   solution that should work out of the box for most basic tagging
   needs (mailinglist handling, killed thread handling, autoarchiving
   solution that should work out of the box for most basic tagging
   needs (mailinglist handling, killed thread handling, autoarchiving
-  of sent mails) and has some fancy features (e.g. mail classification
-  using bayesian filters).
+  of sent mails).
+* [p6-notmuch-filter](https://github.com/goneri/p6-notmuch-filter) a initial
+  tagging script that read its configuration from a JSON file. The script is
+  written in Perl6 and depends on the Email::Notmuch binding.
+
+* [lieer](https://github.com/gauteh/lieer) Fast email-fetching and two-way tag synchronization between notmuch and GMail.
 
 ## Notmuch MDA -- `notmuch-insert`
 
 
 ## Notmuch MDA -- `notmuch-insert`
 
-The [[notmuch insert command|manpages/notmuch-insert-1]] is a tool for
+The [notmuch insert command](https://notmuchmail.org/doc/latest/man1/notmuch-insert.html) is a tool for
 delivering emails to maildir, indexing them to the Notmuch database, and tagging
 them as desired.
 delivering emails to maildir, indexing them to the Notmuch database, and tagging
 them as desired.