diff --git a/mailcat_roundcube.sieve b/mailcat_roundcube.sieve new file mode 100644 index 0000000..fd33ba8 --- /dev/null +++ b/mailcat_roundcube.sieve @@ -0,0 +1,1512 @@ +# mailcat_roundcube.sieve +# Generated from domain_routes.json and mailinglist_routes.json. +# Intended for Roundcube/Managesieve import for hans@australius.nl. +# Do not use :copy: these rules sort incoming mail into destination folders. +# Historical mailbox reordering still requires verplaats_bestaand.py. + +require ["fileinto", "date", "variables"]; + +# 1. Facturen first, matching mail_routes.py subject keywords. +if header :contains "Subject" ["factuur", "invoice", "rekening", "nota", "betaalverzoek", "receipt", "orderbevestiging", "order confirmation", "betaling ontvangen", "payment received", "uw factuur", "your invoice", "je factuur"] { + if currentdate :matches "year" "*" { + set "jaar" "${1}"; + } + if anyof (currentdate :is "month" "1", currentdate :is "month" "2", currentdate :is "month" "3") { + fileinto "INBOX.Financieel.Facturen.${jaar}.Q1"; + } elsif anyof (currentdate :is "month" "4", currentdate :is "month" "5", currentdate :is "month" "6") { + fileinto "INBOX.Financieel.Facturen.${jaar}.Q2"; + } elsif anyof (currentdate :is "month" "7", currentdate :is "month" "8", currentdate :is "month" "9") { + fileinto "INBOX.Financieel.Facturen.${jaar}.Q3"; + } else { + fileinto "INBOX.Financieel.Facturen.${jaar}.Q4"; + } + stop; +} + +# 2. Mailing-list policy, including Afmelden.* destinations. +# mailinglist action=keep +if address :domain :is "From" ["coursera.org", "email.coursera.org", "m.mail.coursera.org", "m.learn.coursera.org"] { + fileinto "INBOX.Nieuwsbrieven.Leren.Coursera"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "storytellingwithdata.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Storytelling with Data"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["technologyreview.com", "fulfillment.technologyreview.com"] { + fileinto "INBOX.Nieuwsbrieven.Leren.MIT Technology Review"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "lendahand.com" { + fileinto "INBOX.Nieuwsbrieven.Overig.Lendahand"; + stop; +} + +# mailinglist action=keep +if anyof ( + address :domain :is "From" "evakeiffenheim.com", + header :contains "From" "evakeiffenheim@substack.com", + header :contains "From" "eva keiffenheim" +) { + fileinto "INBOX.Nieuwsbrieven.Leren.Eva Keiffenheim"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "thegoodroll.nl" { + fileinto "INBOX.Nieuwsbrieven.Overig.The Good Roll"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["eneco-emobility.com", "eneco.nl"] { + fileinto "INBOX.Mobiliteit.EV.Eneco eMobility"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "linkingyourthinking.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Nick Milo"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["ns.nl", "email.ns.nl"] { + fileinto "INBOX.Mobiliteit.OV & Reizen.NS"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "onestopsourcing.nl" { + fileinto "INBOX.Werk.Opdrachten.OneStopSourcing"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["beehiiv.com", "mail.beehiiv.com"] { + fileinto "INBOX.Nieuwsbrieven.Leren.AI Report"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "flextender.nl" { + fileinto "INBOX.Werk.Opdrachten.Flextender"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["unive.nl", "nieuwsbrief.unive.nl"] { + fileinto "INBOX.Financieel.Verzekering.Unive"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["icscards.nl", "icsmarketing.icscards.nl", "service.icscards.nl"] { + fileinto "INBOX.Financieel.Bank.ICS"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "crisismanager.nl" { + fileinto "INBOX.Nieuwsbrieven.Nieuws & Vakbladen.Vakblad Crisismanager"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "cogsciapps.com" { + fileinto "INBOX.Diensten.Software.CogSci Apps"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "tiggelaar.nl" { + fileinto "INBOX.Nieuwsbrieven.Leren.Ben Tiggelaar"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "immens.nu" { + fileinto "INBOX.Werk.Opdrachten.IMMENS"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["nl.abnamro.com", "abnamro.nl"] { + fileinto "INBOX.Financieel.Bank.ABN AMRO"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["postnl.nl", "notificatie.postnl.nl", "edm.postnl.nl"] { + fileinto "INBOX.Bestellingen.PostNL"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["123inkt.nl", "m.123inkt.nl"] { + fileinto "INBOX.Bestellingen.123inkt"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["dhlparcel.nl", "proxy.privault.rpip.nl"] { + fileinto "INBOX.Bestellingen.DHL"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "gls-netherlands.com" { + fileinto "INBOX.Bestellingen.GLS"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["strato.com", "news.strato.com", "marketingradar.strato.com"] { + fileinto "INBOX.Diensten.Hosting.STRATO"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "zakelijk.vodafone.nl" { + fileinto "INBOX.Diensten.Telecom.Vodafone"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "formspree.io" { + fileinto "INBOX.Diensten.Software.Formspree"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["campagnes.kpn.com", "kpn.com"] { + fileinto "INBOX.Diensten.Telecom.KPN"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "letsencrypt.org" { + fileinto "INBOX.Diensten.Hosting.Lets Encrypt"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "backblaze.com" { + fileinto "INBOX.Diensten.Backup.Backblaze"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "briankeating.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Brian Keating"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "getthere.nl" { + fileinto "INBOX.Werk.Opdrachten.Get There"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "hey.meetjamie.ai" { + fileinto "INBOX.Diensten.AI.Jamie"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "huckr.ai" { + fileinto "INBOX.Diensten.AI.Huckr"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "mit.edu" { + fileinto "INBOX.Nieuwsbrieven.Leren.MIT Open Learning"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "allekabels.nl" { + fileinto "INBOX.Bestellingen.Allekabels"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "booking.com" { + fileinto "INBOX.Mobiliteit.OV & Reizen.Booking"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["cleverbridge.com", "home.sophos.com"] { + fileinto "INBOX.Diensten.Software.Sophos"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "fastned.nl" { + fileinto "INBOX.Mobiliteit.EV.FastNed"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "opngo.com" { + fileinto "INBOX.Mobiliteit.EV.OPnGO"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "tesla.com" { + fileinto "INBOX.Mobiliteit.EV.Tesla"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "cursor.com" { + fileinto "INBOX.Diensten.AI.Cursor"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "1password.com" { + fileinto "INBOX.Diensten.Software.1Password"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["delivery.vikingdirect.nl", "online.vikingdirect.nl", "vikingdirect.nl"] { + fileinto "INBOX.Bestellingen.Viking"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "getmatter.com" { + fileinto "INBOX.Diensten.Software.Matter"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["groningen.nl", "groningenbereikbaar.nl"] { + fileinto "INBOX.Werk.Overig.Gemeente Groningen"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "heinenoord.nl" { + fileinto "INBOX.Financieel.Verzekering.VEZA"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "team.kahoot.com" { + fileinto "INBOX.Diensten.Software.Kahoot"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "transip.nl" { + fileinto "INBOX.Diensten.Hosting.TransIP"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "indigoneo.com" { + fileinto "INBOX.Diensten.Software.Indigo Neo"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "officecentre.nl" { + fileinto "INBOX.Bestellingen.Office Centre"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "shellrecharge.com" { + fileinto "INBOX.Mobiliteit.EV.Shell Recharge"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "smartphonehoesjes.nl" { + fileinto "INBOX.Bestellingen.Smartphonehoesjes"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "boip.int" { + fileinto "INBOX.Werk.Overig.BOIP"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "elizabethbutlermd.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Elizabeth Butler"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["bol.com", "feedback.bol.com"] { + fileinto "INBOX.Bestellingen.bol"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "flitsmeister.nl" { + fileinto "INBOX.Mobiliteit.OV & Reizen.Flitsmeister"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "futurexl.nl" { + fileinto "INBOX.Werk.Opdrachten.FutureXL"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "npex.nl" { + fileinto "INBOX.Financieel.Bank.NPEX"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "presentation-guru.com" { + fileinto "INBOX.Nieuwsbrieven.Nieuws & Vakbladen.The Presentation Guru"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "sligro.nl" { + fileinto "INBOX.Bestellingen.Sligro"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "snelstart.nl" { + fileinto "INBOX.Financieel.Bank.SnelStart"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "tellow.nl" { + fileinto "INBOX.Financieel.Bank.Tellow"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" ["coolblue.nl", "coolblue.eu"] { + fileinto "INBOX.Bestellingen.Coolblue"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "jaarbeurs.nl" { + fileinto "INBOX.Nieuwsbrieven.Nieuws & Vakbladen.Computable"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "microsoft365.com" { + fileinto "INBOX.Diensten.Software.Microsoft Teams"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "mmsn.nl" { + fileinto "INBOX.Mobiliteit.EV.Mitsubishi"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "claude.com" { + fileinto "INBOX.Diensten.AI.Claude"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "makro.nl" { + fileinto "INBOX.Bestellingen.Makro"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "mindnode.com" { + fileinto "INBOX.Diensten.Software.MindNode"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "netherfind.com" { + fileinto "INBOX.Diensten.Netwerk.Netherfind"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "papersapp.com" { + fileinto "INBOX.Diensten.Software.Papers"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "perplexity.ai" { + fileinto "INBOX.Diensten.AI.Perplexity"; + stop; +} + +# mailinglist action=keep +if address :domain :is "From" "mail.proton.me" { + fileinto "INBOX.Diensten.Email.Proton"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "researchgatemail.net" { + fileinto "INBOX.Afmelden.Netwerken.ResearchGate"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "virtuagym.com" { + fileinto "INBOX.Afmelden.Fitness.STARS Personal Training"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "linkedin.com" { + fileinto "INBOX.Afmelden.Netwerken.LinkedIn"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "messagent.fdmediagroep.nl" { + fileinto "INBOX.Afmelden.Nieuws.Het Financieele Dagblad"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "fixedtoday.nl" { + fileinto "INBOX.Afmelden.Werk.FixedToday"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "coe-dsc.nl" { + fileinto "INBOX.Afmelden.Werk.Centre of Excellence Data Sharing Cloud"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" ["mn.co", "cionet.com"] { + fileinto "INBOX.Afmelden.Netwerken.CIONET"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" ["gusti-leer.nl", "gusti-leder.de", "gusti-pelle.it"] { + fileinto "INBOX.Afmelden.Winkels.Gusti"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" ["fortelabs.co", "fortelabs.com"] { + fileinto "INBOX.Afmelden.Leren.Forte Labs"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" ["vonage.com", "insights.vonage.com", "nexmo.com"] { + fileinto "INBOX.Afmelden.Telecom.Vonage"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" ["nordvpn.com", "nordpass.com"] { + fileinto "INBOX.Afmelden.Beveiliging.Nord"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "dhlecommerce.nl" { + fileinto "INBOX.Afmelden.Bestellingen.DHL eCommerce"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "taproot.com" { + fileinto "INBOX.Afmelden.Leren.Taproot"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "readwise.io" { + fileinto "INBOX.Afmelden.Productiviteit.Readwise"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "scrimba.com" { + fileinto "INBOX.Afmelden.Leren.Scrimba"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "kilocode.ai" { + fileinto "INBOX.Afmelden.Software.Kilo Code"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "nl.jooble.org" { + fileinto "INBOX.Afmelden.Werk.Jooble"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" ["pleio.nl", "mail.pleio.nl"] { + fileinto "INBOX.Afmelden.Werk.Pleio IBDS"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "fun-mooc.fr" { + fileinto "INBOX.Afmelden.Leren.FUN MOOC"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "stackfield.help" { + fileinto "INBOX.Afmelden.Software.Stackfield"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "destaffinggroep.nl" { + fileinto "INBOX.Afmelden.Werk.De Staffing Groep"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "kaggle.com" { + fileinto "INBOX.Afmelden.Leren.Kaggle"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" ["proton.me", "notify.proton.me"] { + fileinto "INBOX.Afmelden.Diensten.Proton"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "genially.com" { + fileinto "INBOX.Afmelden.Software.Genially"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "idrive.com" { + fileinto "INBOX.Afmelden.Backup.IDrive"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "oppmi.com" { + fileinto "INBOX.Afmelden.Projectmanagement.PMRGI"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "zelfenergieproduceren.nl" { + fileinto "INBOX.Afmelden.Energie.Zelf Energie Produceren"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "nuclino.com" { + fileinto "INBOX.Afmelden.Software.Nuclino"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "remarkable.com" { + fileinto "INBOX.Afmelden.Apparaten.reMarkable"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "olares.com" { + fileinto "INBOX.Afmelden.Software.Olares"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "schrijf.be" { + fileinto "INBOX.Afmelden.Schrijven.Schrijf.be"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "connect.vmware.com" { + fileinto "INBOX.Afmelden.Software.VMware"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "loops.audiogest.app" { + fileinto "INBOX.Afmelden.Software.Audiogest"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "smallcubed.com" { + fileinto "INBOX.Afmelden.Software.SmallCubed"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "titanomon.com" { + fileinto "INBOX.Afmelden.Energie.Energie Collectief Nederland"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "vodafone.nl" { + fileinto "INBOX.Afmelden.Telecom.Vodafone"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "fulli.com" { + fileinto "INBOX.Afmelden.Mobiliteit.Fulli"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "google.com" { + fileinto "INBOX.Afmelden.Advertenties.Google Ads"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "saga.so" { + fileinto "INBOX.Afmelden.Software.Saga"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "triodos.nl" { + fileinto "INBOX.Afmelden.Financieel.Triodos"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "turboscribe.ai" { + fileinto "INBOX.Afmelden.Software.TurboScribe"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "bunq.com" { + fileinto "INBOX.Afmelden.Financieel.bunq"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "ekwb.nl" { + fileinto "INBOX.Afmelden.Winkels.Airo Paradise"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "parallels-universe.com" { + fileinto "INBOX.Afmelden.Software.Parallels"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "et.oreilly.com" { + fileinto "INBOX.Afmelden.Leren.OReilly"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" ["accounts.visme.com", "visme.co"] { + fileinto "INBOX.Afmelden.Software.Visme"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "devulpenwereld.nl" { + fileinto "INBOX.Afmelden.Winkels.De Vulpenwereld"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "incogni.com" { + fileinto "INBOX.Afmelden.Privacy.Incogni"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "smartsheet.com" { + fileinto "INBOX.Afmelden.Software.Smartsheet"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "yourconnector.nl" { + fileinto "INBOX.Afmelden.Netwerken.YourConnector"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "zapier.com" { + fileinto "INBOX.Afmelden.Software.Zapier"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "clickup.com" { + fileinto "INBOX.Afmelden.Software.ClickUp"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "duarte.com" { + fileinto "INBOX.Afmelden.Presenteren.Duarte"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "printabout.nl" { + fileinto "INBOX.Afmelden.Winkels.PrintAbout"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "promomail.microsoft.com" { + fileinto "INBOX.Afmelden.Cloud.Microsoft Azure"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "tana.inc" { + fileinto "INBOX.Afmelden.Productiviteit.Tana"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "tias.edu" { + fileinto "INBOX.Afmelden.Leren.TIAS"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "weblinux.de" { + fileinto "INBOX.Afmelden.Media.VALUE IPTV VOD"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "capacities.io" { + fileinto "INBOX.Afmelden.Productiviteit.Capacities"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "enigmaresearch.nl" { + fileinto "INBOX.Afmelden.Nieuws.Computable Enigma Research"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "euroflorist.nl" { + fileinto "INBOX.Afmelden.Winkels.Euroflorist"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "iexcloud.io" { + fileinto "INBOX.Afmelden.Financieel.IEX Cloud"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "jetpack.com" { + fileinto "INBOX.Afmelden.Diensten.Jetpack"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "linearity.io" { + fileinto "INBOX.Afmelden.Software.Linearity"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "liquidtext.net" { + fileinto "INBOX.Afmelden.Software.LiquidText"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "mural.co" { + fileinto "INBOX.Afmelden.Software.MURAL"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "officenoord.nl" { + fileinto "INBOX.Afmelden.Winkels.Office Noord"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "prezent.ai" { + fileinto "INBOX.Afmelden.Presenteren.Prezent"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "team.wrike.com" { + fileinto "INBOX.Afmelden.Projectmanagement.Wrike"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "alfen.com" { + fileinto "INBOX.Afmelden.Mobiliteit.Alfen"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "gridnewsletter.com" { + fileinto "INBOX.Afmelden.Productiviteit.GRID"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "henchman.io" { + fileinto "INBOX.Afmelden.Legal.Henchman"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "hi.pitch.com" { + fileinto "INBOX.Afmelden.Presenteren.Pitch"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "howtobuyahome.com" { + fileinto "INBOX.Afmelden.Wonen.How To Buy A Home"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "kodeco.com" { + fileinto "INBOX.Afmelden.Leren.Kodeco"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "medium.com" { + fileinto "INBOX.Afmelden.Nieuws.Medium"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "mindmeister.com" { + fileinto "INBOX.Afmelden.Productiviteit.MindMeister"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "next-sports.nl" { + fileinto "INBOX.Afmelden.Fitness.NEXT Personal Gym"; + stop; +} + +# mailinglist action=afmelden +if address :domain :is "From" "teamgantt.com" { + fileinto "INBOX.Afmelden.Projectmanagement.TeamGantt"; + stop; +} + +# mailinglist action=review +if address :domain :is "From" "circle8.nl" { + fileinto "INBOX.Werk.Opdrachten.Circle8"; + stop; +} + +# 3. Domain routes from domain_routes.json. +# domain route +if address :domain :is "From" ["nl.abnamro.com", "abnamro.nl"] { + fileinto "INBOX.Financieel.Bank.ABN AMRO"; + stop; +} + +# domain route +if address :domain :is "From" ["icscards.nl", "icsmarketing.icscards.nl", "service.icscards.nl"] { + fileinto "INBOX.Financieel.Bank.ICS"; + stop; +} + +# domain route +if address :domain :is "From" "npex.nl" { + fileinto "INBOX.Financieel.Bank.NPEX"; + stop; +} + +# domain route +if address :domain :is "From" "n26.com" { + fileinto "INBOX.Financieel.Bank.N26"; + stop; +} + +# domain route +if address :domain :is "From" ["update.bunq.com", "hello.bunq.com"] { + fileinto "INBOX.Financieel.Bank.bunq"; + stop; +} + +# domain route +if address :domain :is "From" "snelstart.nl" { + fileinto "INBOX.Financieel.Bank.SnelStart"; + stop; +} + +# domain route +if address :domain :is "From" "tellow.nl" { + fileinto "INBOX.Financieel.Bank.Tellow"; + stop; +} + +# domain route +if address :domain :is "From" ["mijnkantoorapp.nl", "dijkman-ac.nl"] { + fileinto "INBOX.Financieel.Boekhouding.Dijkman"; + stop; +} + +# domain route +if address :domain :is "From" ["unive.nl", "nieuwsbrief.unive.nl"] { + fileinto "INBOX.Financieel.Verzekering.Univé"; + stop; +} + +# domain route +if address :domain :is "From" "heinenoord.nl" { + fileinto "INBOX.Financieel.Verzekering.VEZA"; + stop; +} + +# domain route +if address :domain :is "From" "flextender.nl" { + fileinto "INBOX.Werk.Opdrachten.Flextender"; + stop; +} + +# domain route +if address :domain :is "From" "onestopsourcing.nl" { + fileinto "INBOX.Werk.Opdrachten.OneStopSourcing"; + stop; +} + +# domain route +if address :domain :is "From" "immens.nu" { + fileinto "INBOX.Werk.Opdrachten.IMMENS"; + stop; +} + +# domain route +if address :domain :is "From" "circle8.nl" { + fileinto "INBOX.Werk.Opdrachten.Circle8"; + stop; +} + +# domain route +if address :domain :is "From" "getthere.nl" { + fileinto "INBOX.Werk.Opdrachten.Get There"; + stop; +} + +# domain route +if address :domain :is "From" ["hey.meetjamie.ai", "notifications.meetjamie.ai"] { + fileinto "INBOX.Diensten.AI.Jamie"; + stop; +} + +# domain route +if address :domain :is "From" "huckr.ai" { + fileinto "INBOX.Diensten.AI.Huckr"; + stop; +} + +# domain route +if address :domain :is "From" "maandag.com" { + fileinto "INBOX.Werk.Opdrachten.Maandag"; + stop; +} + +# domain route +if address :domain :is "From" "futurexl.nl" { + fileinto "INBOX.Werk.Opdrachten.FutureXL"; + stop; +} + +# domain route +if address :domain :is "From" "drenthe.nl" { + fileinto "INBOX.Werk.Opdrachten.Provincie Drenthe"; + stop; +} + +# domain route +if address :domain :is "From" "rdw.nl" { + fileinto "INBOX.Werk.Opdrachten.RDW"; + stop; +} + +# domain route +if address :domain :is "From" "plasbossinade.nl" { + fileinto "INBOX.Werk.Opdrachten.PlasBossinade"; + stop; +} + +# domain route +if address :domain :is "From" "boip.int" { + fileinto "INBOX.Werk.Overig.BOIP"; + stop; +} + +# domain route +if address :domain :is "From" ["groningen.nl", "groningenbereikbaar.nl"] { + fileinto "INBOX.Werk.Overig.Gemeente Groningen"; + stop; +} + +# domain route +if address :domain :is "From" "kvk.nl" { + fileinto "INBOX.Administratie.KvK"; + stop; +} + +# domain route +if address :domain :is "From" ["eneco-emobility.com", "eneco.nl"] { + fileinto "INBOX.Mobiliteit.EV.Eneco eMobility"; + stop; +} + +# domain route +if address :domain :is "From" "shellrecharge.com" { + fileinto "INBOX.Mobiliteit.EV.Shell Recharge"; + stop; +} + +# domain route +if address :domain :is "From" "fastned.nl" { + fileinto "INBOX.Mobiliteit.EV.FastNed"; + stop; +} + +# domain route +if address :domain :is "From" "opngo.com" { + fileinto "INBOX.Mobiliteit.EV.OPnGO"; + stop; +} + +# domain route +if address :domain :is "From" "tesla.com" { + fileinto "INBOX.Mobiliteit.EV.Tesla"; + stop; +} + +# domain route +if address :domain :is "From" "mmsn.nl" { + fileinto "INBOX.Mobiliteit.EV.Mitsubishi"; + stop; +} + +# domain route +if address :domain :is "From" "alfen.com" { + fileinto "INBOX.Mobiliteit.EV.Alfen"; + stop; +} + +# domain route +if address :domain :is "From" ["ns.nl", "email.ns.nl"] { + fileinto "INBOX.Mobiliteit.OV & Reizen.NS"; + stop; +} + +# domain route +if address :domain :is "From" "booking.com" { + fileinto "INBOX.Mobiliteit.OV & Reizen.Booking"; + stop; +} + +# domain route +if address :domain :is "From" "flitsmeister.nl" { + fileinto "INBOX.Mobiliteit.OV & Reizen.Flitsmeister"; + stop; +} + +# domain route +if address :domain :is "From" ["postnl.nl", "edm.postnl.nl", "notificatie.postnl.nl"] { + fileinto "INBOX.Bestellingen.PostNL"; + stop; +} + +# domain route +if address :domain :is "From" ["dhlparcel.nl", "dhlecommerce.nl"] { + fileinto "INBOX.Bestellingen.DHL"; + stop; +} + +# domain route +if address :domain :is "From" "gls-netherlands.com" { + fileinto "INBOX.Bestellingen.GLS"; + stop; +} + +# domain route +if address :domain :is "From" ["bol.com", "feedback.bol.com"] { + fileinto "INBOX.Bestellingen.bol"; + stop; +} + +# domain route +if address :domain :is "From" ["coolblue.nl", "coolblue.eu"] { + fileinto "INBOX.Bestellingen.Coolblue"; + stop; +} + +# domain route +if address :domain :is "From" "allekabels.nl" { + fileinto "INBOX.Bestellingen.Allekabels"; + stop; +} + +# domain route +if address :domain :is "From" ["vikingdirect.nl", "delivery.vikingdirect.nl", "online.vikingdirect.nl"] { + fileinto "INBOX.Bestellingen.Viking"; + stop; +} + +# domain route +if address :domain :is "From" ["123inkt.nl", "m.123inkt.nl"] { + fileinto "INBOX.Bestellingen.123inkt"; + stop; +} + +# domain route +if address :domain :is "From" "officecentre.nl" { + fileinto "INBOX.Bestellingen.Office Centre"; + stop; +} + +# domain route +if address :domain :is "From" "sligro.nl" { + fileinto "INBOX.Bestellingen.Sligro"; + stop; +} + +# domain route +if address :domain :is "From" "makro.nl" { + fileinto "INBOX.Bestellingen.Makro"; + stop; +} + +# domain route +if address :domain :is "From" "smartphonehoesjes.nl" { + fileinto "INBOX.Bestellingen.Smartphonehoesjes"; + stop; +} + +# domain route +if address :domain :is "From" ["strato.com", "news.strato.com", "marketingradar.strato.com"] { + fileinto "INBOX.Diensten.Hosting.STRATO"; + stop; +} + +# domain route +if address :domain :is "From" "transip.nl" { + fileinto "INBOX.Diensten.Hosting.TransIP"; + stop; +} + +# domain route +if address :domain :is "From" ["cloud86.io", "cloud86.zendesk.com"] { + fileinto "INBOX.Diensten.Hosting.Cloud86"; + stop; +} + +# domain route +if address :domain :is "From" "godaddy.com" { + fileinto "INBOX.Diensten.Hosting.GoDaddy"; + stop; +} + +# domain route +if address :domain :is "From" "letsencrypt.org" { + fileinto "INBOX.Diensten.Hosting.Lets Encrypt"; + stop; +} + +# domain route +if address :domain :is "From" "backblaze.com" { + fileinto "INBOX.Diensten.Hosting.Backblaze"; + stop; +} + +# domain route +if address :domain :is "From" ["kpn.com", "campagnes.kpn.com"] { + fileinto "INBOX.Diensten.Telecom.KPN"; + stop; +} + +# domain route +if address :domain :is "From" ["zakelijk.vodafone.nl", "vodafone.nl"] { + fileinto "INBOX.Diensten.Telecom.Vodafone"; + stop; +} + +# domain route +if address :domain :is "From" "nordaccount.com" { + fileinto "INBOX.Diensten.Beveiliging.Nord"; + stop; +} + +# domain route +if address :domain :is "From" "info.expressvpn.com" { + fileinto "INBOX.Diensten.Beveiliging.ExpressVPN"; + stop; +} + +# domain route +if address :domain :is "From" "email.remarkable.com" { + fileinto "INBOX.Diensten.Apparaten.reMarkable"; + stop; +} + +# domain route +if address :domain :is "From" "1password.com" { + fileinto "INBOX.Diensten.Software.1Password"; + stop; +} + +# domain route +if address :domain :is "From" ["home.sophos.com", "cleverbridge.com"] { + fileinto "INBOX.Diensten.Software.Sophos"; + stop; +} + +# domain route +if address :domain :is "From" "cogsciapps.com" { + fileinto "INBOX.Diensten.Software.CogSci Apps"; + stop; +} + +# domain route +if address :domain :is "From" ["claude.com", "mail.anthropic.com"] { + fileinto "INBOX.Diensten.AI.Claude"; + stop; +} + +# domain route +if address :domain :is "From" ["cursor.com", "mail.cursor.com"] { + fileinto "INBOX.Diensten.AI.Cursor"; + stop; +} + +# domain route +if address :domain :is "From" ["mistral.ai", "mistralai.intercom-mail.eu"] { + fileinto "INBOX.Diensten.AI.Mistral"; + stop; +} + +# domain route +if address :domain :is "From" ["openai.com", "chatgpt.com", "tm.openai.com"] { + fileinto "INBOX.Diensten.AI.OpenAI"; + stop; +} + +# domain route +if address :domain :is "From" "perplexity.ai" { + fileinto "INBOX.Diensten.AI.Perplexity"; + stop; +} + +# domain route +if address :domain :is "From" ["canva.com", "account.canva.com"] { + fileinto "INBOX.Diensten.AI.Canva"; + stop; +} + +# domain route +if address :domain :is "From" "microsoft.com" { + fileinto "INBOX.Diensten.Software.Microsoft"; + stop; +} + +# domain route +if address :domain :is "From" "microsoft365.com" { + fileinto "INBOX.Diensten.Software.Microsoft Teams"; + stop; +} + +# domain route +if address :domain :is "From" "market.envato.com" { + fileinto "INBOX.Diensten.Software.Envato"; + stop; +} + +# domain route +if address :domain :is "From" "getmatter.com" { + fileinto "INBOX.Diensten.Software.Matter"; + stop; +} + +# domain route +if address :domain :is "From" "mindnode.com" { + fileinto "INBOX.Diensten.Software.MindNode"; + stop; +} + +# domain route +if address :domain :is "From" "papersapp.com" { + fileinto "INBOX.Diensten.Software.Papers"; + stop; +} + +# domain route +if address :domain :is "From" "team.kahoot.com" { + fileinto "INBOX.Diensten.Software.Kahoot"; + stop; +} + +# domain route +if address :domain :is "From" ["coursera.org", "email.coursera.org", "m.mail.coursera.org", "m.learn.coursera.org"] { + fileinto "INBOX.Nieuwsbrieven.Leren.Coursera"; + stop; +} + +# domain route +if address :domain :is "From" ["technologyreview.com", "fulfillment.technologyreview.com"] { + fileinto "INBOX.Nieuwsbrieven.Leren.MIT Technology Review"; + stop; +} + +# domain route +if address :domain :is "From" "mit.edu" { + fileinto "INBOX.Nieuwsbrieven.Leren.MIT Open Learning"; + stop; +} + +# domain route +if address :domain :is "From" "storytellingwithdata.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Storytelling with Data"; + stop; +} + +# domain route +if address :domain :is "From" "linkingyourthinking.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Nick Milo"; + stop; +} + +# domain route +if address :domain :is "From" "evakeiffenheim.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Eva Keiffenheim"; + stop; +} + +# domain route +if address :domain :is "From" "tiggelaar.nl" { + fileinto "INBOX.Nieuwsbrieven.Leren.Ben Tiggelaar"; + stop; +} + +# domain route +if address :domain :is "From" "briankeating.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Brian Keating"; + stop; +} + +# domain route +if address :domain :is "From" ["beehiiv.com", "mail.beehiiv.com"] { + fileinto "INBOX.Nieuwsbrieven.Leren.AI Report"; + stop; +} + +# domain route +if address :domain :is "From" "elizabethbutlermd.com" { + fileinto "INBOX.Nieuwsbrieven.Leren.Elizabeth Butler"; + stop; +} + +# domain route +if address :domain :is "From" "notify.orcid.org" { + fileinto "INBOX.Nieuwsbrieven.Leren.ORCID"; + stop; +} + +# domain route +if address :domain :is "From" "crisismanager.nl" { + fileinto "INBOX.Nieuwsbrieven.Nieuws & Vakbladen.Vakblad Crisismanager"; + stop; +} + +# domain route +if address :domain :is "From" "jaarbeurs.nl" { + fileinto "INBOX.Nieuwsbrieven.Nieuws & Vakbladen.Computable"; + stop; +} + +# domain route +if address :domain :is "From" "presentation-guru.com" { + fileinto "INBOX.Nieuwsbrieven.Nieuws & Vakbladen.The Presentation Guru"; + stop; +} + +# domain route +if address :domain :is "From" "lendahand.com" { + fileinto "INBOX.Nieuwsbrieven.Overig.Lendahand"; + stop; +} + +# domain route +if address :domain :is "From" "thegoodroll.nl" { + fileinto "INBOX.Nieuwsbrieven.Overig.The Good Roll"; + stop; +} + +# domain route +if address :domain :is "From" "tasks.clickup.com" { + fileinto "INBOX.Afmelden.Software.ClickUp"; + stop; +} + +# domain route +if address :domain :is "From" "gemeenteprojecten.talent-pool.com" { + fileinto "INBOX.Afmelden.Werk.Gemeenteprojecten"; + stop; +} + +# domain route +if address :domain :is "From" "engage.istockphoto.com" { + fileinto "INBOX.Afmelden.Creatief.iStock"; + stop; +} + +# domain route +if address :domain :is "From" "dmarc.postmarkapp.com" { + fileinto "INBOX.Technisch.DMARC"; + stop; +} diff --git a/restart_prompt.md b/restart_prompt.md index cba6a53..d1f29d4 100644 --- a/restart_prompt.md +++ b/restart_prompt.md @@ -79,6 +79,15 @@ Mailing-list routes: - `mailinglist_routes.json` covers normalized policy from `decisions.json`, including `Afmelden.*` destinations. - Mailing-list routing supports domain and `From` substring matching; it does not yet fetch or match `List-ID`. +Roundcube/Sieve: + +- `roundcube.txt` is a user-exported Roundcube filter test file and should be treated as local evidence that Roundcube/Managesieve can export Sieve. Do not treat its test filters as desired production policy. +- `mailcat_roundcube.sieve` is the generated Roundcube/Managesieve Sieve file for the current routing setup. +- `mailcat_roundcube.sieve` is generated from `mailinglist_routes.json` first, then `domain_routes.json`, matching Python routing order after invoice detection. +- It includes `Afmelden.*` routes and uses `fileinto` without `:copy`, so matching incoming messages are sorted instead of duplicated. +- It uses `INBOX.`-prefixed mailbox names because the user's Roundcube export used `fileinto :copy "INBOX.Notes";`. +- Historical mailbox reordering still requires `verplaats_bestaand.py`; Sieve only affects new incoming mail after activation. + Historical sorting: - `verplaats_bestaand.py` defaults to dry-run. Real moves require `--uitvoeren` and interactive `JA`.