Adding Crans filters

This commit is contained in:
Lyes Saadi 2025-12-22 13:50:02 +01:00
parent 8aa05fcd1a
commit deaf66ab8b
Signed by: lyes
GPG key ID: 55A1D803917CF39A
2 changed files with 108 additions and 3 deletions

View file

@ -1,9 +1,10 @@
{ ... }: { pkgs, ... }:
{ {
users.users.deploy = { users.users.deploy = {
group = "deploy"; group = "deploy";
isSystemUser = true; isSystemUser = true;
shell = pkgs.bashInteractive;
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGdkiKdd3vTMd42AejLMoAjqQYd6jYDXojCbOAwV0g9+ deploy@zora" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGdkiKdd3vTMd42AejLMoAjqQYd6jYDXojCbOAwV0g9+ deploy@zora"
]; ];

View file

@ -48,23 +48,125 @@
]; ];
quota = "1T"; quota = "1T";
sieveScript = '' sieveScript = ''
require ["include", "fileinto", "mailbox", "copy", "regex", "variables"]; require ["include", "fileinto", "mailbox", "copy", "regex", "variables", "imap4flags"];
include :personal "hiddensieve"; include :personal "hiddensieve";
# lyes.eu filters
if address :is :domain "X-Original-To" "lyes.eu" { if address :is :domain "X-Original-To" "lyes.eu" {
if address :localpart :regex "X-Original-To" "^(([a-zA-Z]+\\.)*([a-zA-Z]+))(-([a-zA-Z0-9_.\\-]*))?''$" { # If the mail comes from my crans mailbox
if address :is :localpart "X-Original-To" "crans" {
# Aurore Support
if header :contains "List-Id" "<support.aurore.lists.crans.org>" {
fileinto :create "Crans.aurore.support";
}
# Mailman moderation request
elsif address :matches :all "To" "*-owner@lists.crans.org" {
fileinto :create "Crans.moderation";
}
# Crans Bureau
elsif anyof (
header :contains "List-Id" "<bureau.lists.crans.org>",
header :contains "List-Id" "<achats-crans.lists.crans.org>",
header :contains "List-Id" "<tresorerie.lists.crans.org>"
) {
fileinto :create "Crans.crans.bureau";
}
# Crans CA
elsif header :contains "List-Id" "<ca.lists.crans.org>" {
fileinto :create "Crans.crans.ca";
}
# Crans Nounou
elsif anyof (
header :contains "List-Id" "<nounou.lists.crans.org>",
header :contains "List-Id" "<apprenti-es.lists.crans.org>"
) {
fileinto :create "Crans.crans.nounou";
}
# Crans Root
elsif anyof (
address :is :all "From" "root@crans.org",
address :is :all "From" "www-data@crans.org"
) {
fileinto :create "Crans.crans.root";
}
# Crans Root Postmaster
elsif address :is :all "To" "postmaster@crans.org" {
addflag "\\Seen";
fileinto :create "Crans.crans.root.postmaster";
}
# Crans Root Mailer
elsif address :is :all "From" "MAILER-DAEMON@crans.org" {
fileinto :create "Crans.crans.root.mailer";
}
# Crans Gitlab
elsif address :is :all "From" "gitlab@crans.org" {
fileinto :create "Crans.crans.gitlab";
}
# Crans Wiki
elsif address :is :all "From" "wiki@crans.org" {
fileinto :create "Crans.crans.wiki";
}
# Aurore CA
elsif header :contains "List-Id" "<ca.aurore.lists.crans.org>" {
fileinto :create "Crans.aurore.ca";
}
# BDL
elsif anyof (
header :contains "List-Id" "<bdl-bureau.lists.crans.org>",
header :contains "List-Id" "<bdl.lists.crans.org>"
) {
fileinto :create "Crans.asso.bdl";
}
# Med
elsif anyof (
header :contains "List-Id" "<med-bureau.lists.crans.org>",
header :contains "List-Id" "<med.lists.crans.org>"
) {
fileinto :create "Crans.asso.med";
}
# NL BDE
elsif header :contains "List-Id" "<evenements.lists.crans.org>" {
fileinto :create "Crans.asso.nl.bde";
}
# NL BDA
elsif header :contains "List-Id" "<evenement.bda.lists.crans.org>" {
fileinto :create "Crans.asso.nl.bda";
}
# Any other associative mail
elsif anyof (
header :contains "List-Id" "<la5emeparallele-bureau.lists.crans.org>",
header :contains "List-Id" "<la5emeparallele.lists.crans.org>",
header :matches "List-Id" "<*.lists.crans.org>"
) {
fileinto :create "Crans.asso";
}
# Otherwise it's for the generic mailbox
else {
fileinto :create "Crans";
}
}
# Otherwise it's for my different accounts
# It's automatically sorted using the localpart
elsif address :localpart :regex "X-Original-To" "^(([a-zA-Z]+\\.)*([a-zA-Z]+))(-([a-zA-Z0-9_.\\-]*))?''$" {
set :lower "sub_folder" "''${1}"; set :lower "sub_folder" "''${1}";
set "mbox_candidate" "INBOX.''${sub_folder}"; set "mbox_candidate" "INBOX.''${sub_folder}";
fileinto :create "''${mbox_candidate}"; fileinto :create "''${mbox_candidate}";
} }
# Other unknown origin
else { else {
fileinto :create "INBOX.other"; fileinto :create "INBOX.other";
} }
} }
# It's destined to my main inbox
elsif address :is "X-Original-To" "lyes@mail.lyes.eu" { elsif address :is "X-Original-To" "lyes@mail.lyes.eu" {
fileinto :create "INBOX"; fileinto :create "INBOX";
} }
# Other unknown origin
else { else {
fileinto :create "INBOX.other"; fileinto :create "INBOX.other";
} }
@ -95,6 +197,8 @@
# } # }
# ''; # '';
services.dovecot2.sieve.extensions = [ "imap4flags" ];
services.roundcube = { services.roundcube = {
enable = true; enable = true;