So I’ve updated my sieve filters to append alias to subject:
require ["fileinto", "mailbox", "variables", "envelope", "duplicate", "editheader"];
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
if duplicate {
discard;
stop;
}
if header :matches "Subject" "*" {
set "subject" "${1}";
}
if header :matches "To" "*+*@*.domain.com" {
set "folder_name" "INBOX/${1}@${3}.domain.com";
if not mailboxexists "${folder_name}" {
fileinto :create "${folder_name}";
}
deleteheader "Subject";
addheader :last "Subject" "${subject} [${1}@${3}.domain.com]";
fileinto "${folder_name}";
} elsif header :matches "To" "*@*.domain.com" {
set "folder_name" "INBOX/${1}@${2}.domain.com";
if not mailboxexists "${folder_name}" {
fileinto :create "${folder_name}";
}
deleteheader "Subject";
addheader :last "Subject" "${subject} [${1}@${2}.domain.com]";
fileinto "${folder_name}";
}
Now I only need to patch postfix to replace what’s in subject I think
Simplified sieve a bit:
require ["fileinto", "mailbox", "variables", "envelope", "duplicate", "editheader"];
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
if duplicate {
discard;
stop;
}
if header :matches "To" "*+*@*.domain.com" {
set "alias" "${1}@${3}.domain.com";
} elsif header :matches "To" "*@*.domain.com" {
set "alias" "${1}@${2}.domain.com";
}
if string :matches "alias" "*" {
if header :matches "Subject" "*" {
set "subject" "${1}";
}
deleteheader "Subject";
addheader :last "Subject" "${subject} [${alias}]";
set "folder_name" "INBOX/${alias}";
if not mailboxexists "${folder_name}" {
fileinto :create "${folder_name}";
} else {
fileinto "${folder_name}";
}
}
Simplified sieve a bit:
require ["fileinto", "mailbox", "variables", "envelope", "duplicate", "editheader"];
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
if duplicate {
discard;
stop;
}
if header :matches "To" "*+*@*.domain.com" {
set "alias" "${1}@${3}.domain.com";
} elsif header :matches "To" "*@*.domain.com" {
set "alias" "${1}@${2}.domain.com";
}
if string :matches "alias" "*" {
if header :matches "Subject" "*" {
set "subject" "${1}";
}
deleteheader "Subject";
addheader :last "Subject" "${subject} [${alias}]";
set "folder_name" "INBOX/${alias}";
if not mailboxexists "${folder_name}" {
fileinto :create "${folder_name}";
} else {
fileinto "${folder_name}";
}
}