summaryrefslogtreecommitdiff
path: root/.maildirproc
diff options
context:
space:
mode:
Diffstat (limited to '.maildirproc')
l---------.maildirproc1
-rw-r--r--.maildirproc/default.rc352
2 files changed, 1 insertions, 352 deletions
diff --git a/.maildirproc b/.maildirproc
new file mode 120000
index 0000000..ac993e9
--- /dev/null
+++ b/.maildirproc
@@ -0,0 +1 @@
+.config/maidirproc \ No newline at end of file
diff --git a/.maildirproc/default.rc b/.maildirproc/default.rc
deleted file mode 100644
index c2ad6f2..0000000
--- a/.maildirproc/default.rc
+++ /dev/null
@@ -1,352 +0,0 @@
-# -*- mode: python; -*-
-
-import subprocess
-
-processor.maildir_base = "~/Maildir"
-processor.auto_reload_rcfile = True
-
-def is_to_or_from(mail,address):
- """
- Return true if [mail] is to or from an address that contains [address].
- """
- return (
- mail["From"].contains(address)
- or mail.target.contains(address))
-def is_to_or_from_re(mail,address):
- """
- Return true if [mail] is to or from an address that matches the
- regex [address].
- """
- return (
- mail["From"].matches(address)
- or mail.target.matches(address))
-
-def bogofilter_auto(mail):
- p = subprocess.Popen(
- ["bogofilter", "-u", "-v", "-I", mail.path],
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- (output, _) = p.communicate()
- processor.log("*** Bogofilter result: {0!r}".format(output.rstrip()))
- if p.returncode not in [0, 1, 2]:
- processor.log_error(
- "Error running bogofilter: Return code = {0!r}".format(
- p.returncode))
- return p.returncode
-
-def bogofilter_ham(mail):
- subprocess.call(["bogofilter", "-S", "-n", "-I", mail.path])
-
-def bogofilter_spam(mail):
- subprocess.call(["bogofilter", "-N", "-s", "-I", mail.path])
-
-def handle_incoming_spam_training(mail):
- bogofilter_spam(mail)
- mail.move(".Bulk Mail")
-
-def handle_incoming_ham_training(mail):
- bogofilter_ham(mail)
- handle_incoming_ham(mail)
-
-def handle_incoming_ham(mail):
- my_filters(mail)
-def handle_incoming_spam(mail):
- mail.move(".Bulk Mail")
-
-def handle_incoming_unknown(mail):
- # Filter spam
-
- spam = bogofilter_auto(mail)
- if spam == 0:
- handle_incoming_spam(mail)
- return
- elif spam == 1:
- handle_incoming_ham(mail)
- return
- elif spam == 2:
- # maybe spam
- return
- else:
- mail.move(".Error")
- return
-
-def my_filters(mail):
- # Sort mail from GNU mailing lists
- for list in [ 'bug-gsrc', 'bug-make', 'help-make', 'social', 'help-grub' ]:
- if (
- False
- or mail["List-Id"].matches(list+"\.gnu\.org")
- or mail["Subject"].contains(list)
- ):
- mail.move(".software."+list)
- return
-
- # Sort mail from other software mailing lists
- if (
- False
- or mail["List-Id"].matches("social-discuss\.gnu\.org")
- or mail["Subject"].contains("social-discuss")
- ):
- mail.move(".software.social")
- return
-
- if mail["List-Id"].matches("maintenance.lists.parabolagnulinux.org"):
- mail.move(".software.parabola-maintenance")
- return
- if (
- False
- or mail["List-Id"].matches("parabolagnulinux.org")
- or is_to_or_from(mail, "parabolagnulinux.org")
- or is_to_or_from(mail, "parabola.nu")
- ):
- mail.move(".software.parabola-dev")
- return
-
- if (mail["List-Id"].matches("pacman-dev.archlinux.org")):
- mail.move(".software.pacman-dev")
- return
-
- for subject_re in [
- "\[Stow-[^\]]*\].*",
- ]:
- if mail["Subject"].matches(subject_re):
- mail.move(".software")
- return
-
- # Sort mail from some social websites
- if mail["From"].matches("facebook(|mail)\.com"):
- mail.move(".Social.Facebook")
- return
-
- if (
- False
- or mail["From"].matches("identi\.ca")
- or mail["From"].matches("statusnet")
- ):
- mail.move(".Social.Identica")
- return
-
- if mail["From"].matches("twitter\.com"):
- mail.move(".Social.Twitter")
- return
-
- if mail["From"].matches("@xkcd\.com"):
- mail.move(".Social.xkcd")
- return
-
- # Sort mail related to Troop 276
- if (
- False
- or mail["List-Id"].contains("troopmailinglist.troop276.net")
- or is_to_or_from(mail,"t276_announcements@att.net")
- or mail["Subject"].matches("troop")
- or mail["Subject"].matches("merit\s*badge")
- or is_to_or_from(mail,"jsting@sbcglobal.net")
- or is_to_or_from(mail,"trdindy@comcast.net")
- or is_to_or_from(mail,"wjensen111@aol.com")
- or is_to_or_from(mail,"dhoyt@yourhomecompany.com")
- or is_to_or_from(mail,"salupo_vincent_p@lilly.com")
- or is_to_or_from(mail,"basu@maharjan.org")
- or is_to_or_from(mail,"muellerindy@yahoo.com")
- or is_to_or_from(mail,"solorzano.luis@rocketmail.com")
- or is_to_or_from(mail,"eldredmac@comcast.net")# MacDonell
- or is_to_or_from(mail,"mitchprather@sbcglobal.net")
- or is_to_or_from(mail,"oa_wap@yahoo.com")
- or is_to_or_from(mail,"mytroop.us")
- ):
- mail.move(".Troop276")
- return
-
- # Sort mail from misc people
- if mail["From"].matches("margieshu@sbcglobal\.net"):
- mail.move(".misc.Mom")
- return
-
- for address in [
- "justicejade10@aol.com",
- "parsonsjade@aol.com",
- "parsonstjade@gmail.com",
- ]:
- if mail["From"].contains(address):
- mail.move(".misc.Jade")
- return
-
- for address in [
- "nintendo.com",
- "nintendo-news.com",
- ]:
- if mail["From"].contains(address):
- mail.move(".misc.Nintendo")
- return
-
- for address in [
- "@lpi.org",
- "@pearson.com",
- "CompTIA",
- ]:
- if mail["From"].contains(address):
- mail.move(".misc.CompTIA")
- return
-
- # Sort mail from FRC people
- for address in [
- "jeffreysmith@msdlt.k12.in.us",
- "jason.zielke@gmail.com",
- "allison.m.babcock@gmail.com",
- "william.walk@gmail.com",
- "BBonahoom@stanleyworks.com",
- "wcxctrack829@aim.com", # Pat
- "djnels1@comcast.net", # Dave and Julie Nelson
- "sarahlittell@comcast.net",
- "skiplittell@comcast.net",
- "dave.nelson@ecolab.com",
- "@ni.com",
- "@usfirst.org",
- "gamefreak207@gmail.com", # Brett Leedy
- "tswilson4801@att.net",
- "silioso@gmail.com",
- "cdewalt3@yahoo.com",
- "bryanbonahoom@gmail.com",
- ]:
- if is_to_or_from(mail,address):
- mail.move(".School.Robotics")
- return
- for subject_re in [
- "FIRST",
- "robotics",
- "1024",
- "kil-?a-?bytes",
- ]:
- if mail["Subject"].matches(subject_re):
- mail.move(".School.Robotics")
- return
-
- # Sort mail from software people
- for address in [
- "gnu.org",
- "eff.org",
- "gitorious.org",
- "sourceforge.com",
- "ietf.org",
- "kde.org",
- "trustees@core3.amsl.com",
- "esr@thyrsus.com",
- "canonical.org",
- "foocorp.net",
- "cnuk.org",
- "@archlinux.org",
- "@github.com",
- ]:
- if is_to_or_from(mail,address):
- mail.move(".software")
- return
-
-
- # Sort mail from the school newspaper
- if (
- False
- or is_to_or_from(mail, "@lnnorthstar.org")
- or is_to_or_from(mail, "lnnorthstar.org@tigertech.net")
- ):
- mail.move(".School.Newspaper")
- return
-
- # Sort mail from various employers/people who pay me
- if is_to_or_from(mail, "@precisepath.com"):
- mail.move(".Work.PrecisePath")
- return
-
- if is_to_or_from(mail,"susyphil@aol.com"):
- mail.move(".Work.PMCH")
-
- for address in [
- "d.farrar@comcast.net",
- "dfarrar@avacoustics.net",
- "@vmware.com",
- ]:
- if is_to_or_from(mail,address):
- mail.move(".Work.FAST")
- return
-
- # Sort misc newsletters
- if (
- False
- or mail["From"].contains("newsletter")
- or mail["From"].contains("auto@comicsbyemail.com")
- or mail["From"].contains("oreilly.com")
- or mail["Subject"].contains("newsletter")
- or mail["From"].contains("Info@mailing.jamendo.com")
- or mail["From"].contains("info@demandprogress.org")
- ):
- mail.move(".misc.Newsletters")
- return
-
- if (
- False
- or mail["From"].contains("@msdlt.k12.in.us")
- or mail["From"].contains("naviance.com")
- or is_to_or_from(mail,"ibwhite@comcast.net")
- or mail["Subject"].contains("IOA")
- or mail["From"].contains("nths.org")
- or mail["Subject"].contains("NTHS")
- or mail["Subject"].contains("National Technical Honor Society")
- or mail["Subject"].contains("NHS")
- or mail["Subject"].contains("National Honor Society")
- ):
- mail.move(".School")
- return
-
- # from college stuff
- if (
- False
- or mail["Subject"].contains("NYLF") # National Youth Leadership Conference
- or mail["Subject"].contains("NSHSS")
- ):
- mail.move(".College.Societies")
- return
- if (
- False
- or mail["From"].contains(".edu")
- or mail["From"].contains("admissions@")
- or mail["From"].contains("college")
- or mail["From"].contains("university")
- or mail["Subject"].contains("college")
- # now we get to the BS
- or mail["From"].contains("@dreamitdoitindiana.com")
- or mail["From"].contains("@indianatechinfo.org")
- ):
- mail.move(".College")
- return
-
- if mail["From"].contains("@projectwonderful.com"):
- mail.move(".ProjectWonderful")
- return
-
- if (
- False
- or mail["From"].matches("@localhost")
- or mail["From"].matches("@[^,>]*\.local")
- or mail["From"].matches("@[^,>]*\.lukeshu\.ath\.cx")
- or mail["To"].matches("luke@")
- ):
- mail.move(".LocalSystems")
- return
- if (
- False
- or mail["Subject"].contains("password")
- or mail["Subject"].contains("account")
- ):
- mail.move(".misc.accounts")
- return
-
- mail.move(".Ham")
-
-handle_mapping = {
- ".": handle_incoming_unknown,
- ".spam-training": handle_incoming_spam_training,
- ".ham-training": handle_incoming_ham_training,
- #".Ham": handle_incoming_ham,
- }
-processor.maildirs = handle_mapping.keys()
-for mail in processor:
- handle_mapping[mail.maildir](mail)