X-Git-Url: https://git.cworth.org/git?p=notmuch-wiki;a=blobdiff_plain;f=initial_tagging.mdwn;h=fa86b4d7f8582c97b264172c6e2a1afd4301f3e7;hp=8aa2f916a87a08515b321cfc38a949c572a45f89;hb=HEAD;hpb=8dd999485b28111a872ca56371eae9a0face3944 diff --git a/initial_tagging.mdwn b/initial_tagging.mdwn index 8aa2f91..44243e0 100644 --- a/initial_tagging.mdwn +++ b/initial_tagging.mdwn @@ -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.