[mail] Fix how notmuch and mbsync work
This commit is contained in:
@ -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
|
||||
|
||||
21
mail/.config/afew/spammy_filter.py
Normal file
21
mail/.config/afew/spammy_filter.py
Normal 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')
|
||||
Reference in New Issue
Block a user