]> git.cworth.org Git - notmuch-wiki/blobdiff - initial_tagging.mdwn
News for release 0.38.3
[notmuch-wiki] / initial_tagging.mdwn
index 8aa2f916a87a08515b321cfc38a949c572a45f89..44243e031a1651db7c5db0b818d2e49ccdc1b0d7 100644 (file)
@@ -4,9 +4,17 @@
 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
-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;
@@ -28,25 +36,39 @@ following:
     # 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.
 
+## Tagging based on content
 
-# Other solutions
+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.
 
-* [Carl Worth's approach to tagging](http://notmuchmail.org/pipermail/notmuch/2010/001691.html). It
+    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
+
+* [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.
 
 
-* [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.
 
-* [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
@@ -58,15 +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.
 
-* [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
-  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 Delivery Agent -- `notmuch-deliver`
+## Notmuch MDA -- `notmuch-insert`
 
-The [Notmuch Delivery Agent](http://github.com/alip/notmuch-deliver/)
-([announcement](http://notmuchmail.org/pipermail/notmuch/2010/002871.html)) is
-a tool for delivering emails to maildir, add them to the Notmuch database, and
-tag them as desired.
+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.