45 lines
1.9 KiB
Sieve
45 lines
1.9 KiB
Sieve
/* @metadata:begin
|
|
{"version":1,"rules":[{"id":"bw-news","name":"Archive newsletters","enabled":true,"matchType":"any","conditions":[{"field":"header","comparator":"contains","value":"unsubscribe","headerName":"List-Unsubscribe"},{"field":"from","comparator":"contains","value":"newsletter@"}],"actions":[{"type":"move","value":"Newsletters"}],"stopProcessing":false},{"id":"bw-vip","name":"Flag VIP senders","enabled":true,"matchType":"any","conditions":[{"field":"from","comparator":"is","value":"ceo@company.com"},{"field":"from","comparator":"is","value":"board@company.com"}],"actions":[{"type":"star"},{"type":"mark_read"}],"stopProcessing":false}]}
|
|
@metadata:end */
|
|
|
|
require ["body", "copy", "fileinto", "imap4flags", "relational"];
|
|
|
|
# Rule: Archive newsletters
|
|
if anyof(header :contains "List-Unsubscribe" "unsubscribe", header :contains "From" "newsletter@") {
|
|
fileinto "Newsletters";
|
|
}
|
|
|
|
# Rule: Flag VIP senders
|
|
if anyof(header :is "From" "ceo@company.com", header :is "From" "board@company.com") {
|
|
addflag "\\Flagged";
|
|
addflag "\\Seen";
|
|
}
|
|
|
|
# --- External rules (managed outside Bulwark) ---
|
|
|
|
# rule:[Finance - auto-file invoices]
|
|
if allof(header :contains "From" "billing@", header :contains "Subject" "invoice") {
|
|
fileinto :copy "Finance/Invoices";
|
|
keep;
|
|
}
|
|
|
|
# Nextcloud Mail - begin
|
|
# Filter installed by Nextcloud Mail app
|
|
if header :contains "Subject" "[Support]" {
|
|
fileinto "Support";
|
|
}
|
|
# Nextcloud Mail - end
|
|
|
|
# A handwritten rule without a tool-specific marker.
|
|
# Bulwark should recognize this as generic "External" and preserve it.
|
|
if not header :is "X-Spam-Status" "No" {
|
|
fileinto "Junk";
|
|
}
|
|
|
|
# A rule using a Sieve construct Bulwark's visual editor does not understand.
|
|
# It must survive round-trips verbatim, shown to the user as read-only.
|
|
if header :value "ge" :comparator "i;ascii-numeric" "X-Priority" ["3"] {
|
|
fileinto "LowPriority";
|
|
stop;
|
|
}
|