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 = {
|
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"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue