[mail] Fix how notmuch and mbsync work

This commit is contained in:
2026-08-05 00:05:24 -04:00
parent a956955300
commit b4935c82d7
12 changed files with 160 additions and 136 deletions

View File

@ -1,8 +1,13 @@
[global]
[SpamFilter]
[SpammyFilter]
min_score = 3.0
max_score = 5.0
[KillThreadsFilter]
[DMARCReportInspectionFilter]
# DMARC filter crashes on messages lacking a Subject (afew 4.0.2 + notmuch2)
#[DMARCReportInspectionFilter]
[FolderNameFilter]
folder_lowercases = true
@ -17,43 +22,37 @@ sent_tag = sent
# add specific tags
# Jira tag as Jira
[Filter.1]
query = 'from:jira@15five-dev.atlassian.net'
tags = +jira;-inbox
message = Jira message
# Orgmode
[Filter.2]
[Filter.1]
query = 'emacs-orgmode'
tags = -new;-inbox;+orgmode
message = orgmode message
# Delete some spam
[Filter.3]
[Filter.2]
query = '\'Office365 Message Center\' via Developers OR from:govdelivery@subscriptions.defense.gov OR from:notifications@facebookmai.com OR from:MPP@em.home.dell.com'
tags = -inbox;+spam
message = spam message
# Tag interview emails
[Filter.4]
[Filter.3]
query = 'subject:Interview'
tags = -inbox;+interview
message = personal message
# Emacs Conf
[Filter.6]
[Filter.4]
query = 'to:emacsconf-discuss@gnu.org'
tags = -inbox;-new;+emacsconf
message = emacsconf message
[Filter.7]
[Filter.5]
query = 'from:notifications@github.com'
tags = -inbox;+github
message = Github message
[MailMover]
folders = colin@unbl.ink/INBOX colin@unbl.ink/Archive colin@unbl.ink/Trash colin@castine.town/INBOX colin@castine.town/Archive colin@castine.town/Trash
folders = colin@unbl.ink/INBOX colin@unbl.ink/Archive colin@unbl.ink/Trash
rename = True
max_age = 15
@ -61,11 +60,3 @@ max_age = 15
colin@unbl.ink/INBOX = 'tag:spam':colin@unbl.ink/Junk 'NOT tag:inbox':colin@unbl.ink/Archive 'tag:trash':colin@unbl.ink/Trash
colin@unbl.ink/Archive = 'tag:inbox':colin@unbl.ink/INBOX 'tag:trash':colin@unbl.ink/Trash
colin@unbl.ink/Trash = 'tag:inbox':colin@unbl.ink/INBOX 'tag:archive':colin@unbl.ink/Archive
colin@castine.town/INBOX = 'tag:spam':colin@castine.town/Junk 'NOT tag:inbox':colin@castine.town/Archive 'tag:trash':colin@castine.town/Trash
colin@castine.town/Archive = 'tag:inbox':colin@castine.town/INBOX 'tag:trash':colin@castine.town/Trash
colin@castine.town/Trash = 'tag:inbox':colin@castine.town/INBOX 'tag:archive':colin@castine.town/Archive
secstate@sdf.org/INBOX = 'tag:spam':secstate@sdf.org/Junk 'NOT tag:inbox':secstate@sdf.org/Archive 'tag:trash':secstate@sdf.org/Trash
secstate@sdf.org/Archive = 'tag:inbox':secstate@sdf.org/INBOX 'tag:trash':secstate@sdf.org/Trash
secstate@sdf.org/Trash = 'tag:inbox':secstate@sdf.org/INBOX 'tag:archive':secstate@sdf.org/Archive

View File

@ -0,0 +1,21 @@
from afew.filters.BaseFilter import Filter
from afew.FilterRegistry import register_filter
@register_filter
class SpammyFilter(Filter):
message = 'Tag borderline spam (X-Spam-Score in gray zone)'
min_score = 3.0
max_score = 5.0
def __init__(self, database, **kwargs):
super().__init__(database, **kwargs)
self.min_score = float(self.min_score)
self.max_score = float(self.max_score)
def handle_message(self, message):
try:
score = float(message.header('X-Spam-Score'))
except (LookupError, ValueError, TypeError):
return
if self.min_score <= score < self.max_score:
self.add_tags(message, 'spammy')

View File

@ -1,2 +1,3 @@
#!/bin/sh
python ~/.bin/notify-on-new-mail.py
python ~/.local/bin/notify-on-new-mail.py
exit 0