Sieve management in Thunderbird requires to know (or be willing to learn) about the Sieve syntax in order to create your rules.
It's up to you really, but know that this is the harder way, and that easy mail filter management can be achieved from within our Sogo Groupware. It's also the recommended method (see documentation here).
The plugin should be found when search for 'Sieve' in Thunderbird extension search bar. It should lead you here.
Simply install the extension and you are now ready to go.
Below is the workflow step by step to access and create your first Sieve filter. You can create multiple profiles, but keep in mind that only one at a time can be activated.
If it's your first script, you must fight should follow the guides which will ask you to name your new script.
You are now where the magic happens. You have all the flexibility of Sieve at your fingertips.
I personally use the raw script view to set up my filters, which looks like this:
But you can also test / use the Script tab, which is useful to refer to also when you are looking for a specific Sieve keyword:
To be able to use the different actions, you need to import them first at the top of the file using require. You can do that as needs come, or put a quite general line like this:
require ["imap4flags","envelope","subaddress","fileinto","variables","vacation","reject","copy","mailbox"];
In this example we are setting up a 'flag' rule, marking any email coming from management@nomagic.uk as important, based on the Thunderbird and/or Sogo flag colour numbers.
Important
as $label 1
from Thunderbird's preferencesSieve plugin automatically checks for syntax error, which makes it very handy when you add / modify rules
It is strongly advised to keep a commented label of each of your rules, as shown on the screenshot, with the format:
# rule:[rules-description]
# # Mail filters (server-side) # require ["imap4flags","envelope"]; if address :is :all "from" "management@nomagic.uk" { addflag "$label1"; }
That's it, all emails from NOMAGIC's management will be marked with the important flag as they arrive in your mailbox!
Filters are tested in the order that they appear in the file. If you want to avoid getting through all of them as you don't plan on having 2 filters applied to the same email, declare your filters in a series of if { .. } elsif { .. } elsif { .. }
. That way the Sieve server will stop on the first match.
if address :is :all "from" "management@nomagic.uk" { addflag "$label1"; } # rule:[aide] elsif envelope :detail "to" "aide" { fileinto "INBOX.dev.aide"; } # rule:[postfix] elsif anyof (address :is "to" "postfix-users@postfix.org", address :is "cc" "postfix-users@postfix.org") { fileinto "INBOX.postfix"; }
Vacation is plain Sieve syntax, using the right requirements you can set up vacation via your Sieve script.
I would suggest several ways to do that though.
require ["fileinto","envelope","subaddress","vacation", "reject"]; # rule:[vacation] if false # change to true and Save to activate the auto-reply. { vacation :days 1 :addresses "tux@nomagic.uk" :subject "out of office: auto reply" text: I am currently away from keyboard for some days. I will reply when I get back. Cheers, Tux . ; }
require ["fileinto", "imap4flags", "mailbox", "copy", "body", "date", "vacation", "relational"]; # Vacation, update the date whenever needed if allof ( not exists ["list-help", "list-unsubscribe", "list-subscribe", "list-owner", "list-post", "list-archive", "list-id", "Mailing-List"], not header :comparator "i;ascii-casemap" :is "Precedence" ["list", "bulk", "junk"], not header :comparator "i;ascii-casemap" :matches "To" "Multiple recipients of*", currentdate :value "ge" "date" "2021-11-10", currentdate :value "le" "date" "2021-11-17" ) { vacation :days 2 :addresses ["testing@nomagic.uk", "tux@nomagic.uk"] text: Hello, I am currently away from keyboard for some days. I will reply when I get back. Cheers, Tux . ; }
→ days 2
here means that, for a single email address sending us several emails over the days, an auto-reply email should be sent only every 2 days.
The Sieve Thunderbird extension comes with automatic syntax check, and will prevent you from saving until your file is 'clean'. Thus, troubleshooting is made fairly easy.