Adding Crans filters
This commit is contained in:
parent
8aa05fcd1a
commit
deaf66ab8b
2 changed files with 108 additions and 3 deletions
|
|
@ -1,9 +1,10 @@
|
|||
{ ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
users.users.deploy = {
|
||||
group = "deploy";
|
||||
isSystemUser = true;
|
||||
shell = pkgs.bashInteractive;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGdkiKdd3vTMd42AejLMoAjqQYd6jYDXojCbOAwV0g9+ deploy@zora"
|
||||
];
|
||||
|
|
|
|||
|
|
@ -48,23 +48,125 @@
|
|||
];
|
||||
quota = "1T";
|
||||
sieveScript = ''
|
||||
require ["include", "fileinto", "mailbox", "copy", "regex", "variables"];
|
||||
require ["include", "fileinto", "mailbox", "copy", "regex", "variables", "imap4flags"];
|
||||
|
||||
include :personal "hiddensieve";
|
||||
|
||||
# lyes.eu filters
|
||||
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 "mbox_candidate" "INBOX.''${sub_folder}";
|
||||
fileinto :create "''${mbox_candidate}";
|
||||
}
|
||||
|
||||
# Other unknown origin
|
||||
else {
|
||||
fileinto :create "INBOX.other";
|
||||
}
|
||||
}
|
||||
|
||||
# It's destined to my main inbox
|
||||
elsif address :is "X-Original-To" "lyes@mail.lyes.eu" {
|
||||
fileinto :create "INBOX";
|
||||
}
|
||||
|
||||
# Other unknown origin
|
||||
else {
|
||||
fileinto :create "INBOX.other";
|
||||
}
|
||||
|
|
@ -95,6 +197,8 @@
|
|||
# }
|
||||
# '';
|
||||
|
||||
services.dovecot2.sieve.extensions = [ "imap4flags" ];
|
||||
|
||||
services.roundcube = {
|
||||
enable = true;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue