I read the sieve-filter man page so I'll speculate.   Granted, I still don't fully understand how sieve and virtual users work as I have never set this up.

"postmaster" is an alias of root and "vmail" is probably just a directory name.   So, from the root's command prompt, the environment variables probably aren't totally set up for sieve-filter to understand virtual users.

So, working from the command prompt, you probably have to explicitly specify the .sieve path and leave off the -u argument

# cd /location_of_virtual_user_INBOX
# sieve-filter -v /opt/some_global_rules/sieve/managesieve.sieve INBOX

Would is be great if seive-filter had an argument to understand the system's virual user's settings?  Of course.  I don't know why the developer haven't included it.

-Eric

On 1/24/2022 7:59 AM, Андрей Куницын wrote:
Hello
I try to test my sieve script, but found out that it is impossible to use a sieve-filter tool with virtual mail users. It always uses a real user name instead of passed via -u argument.


# sieve-filter -v -u postmaster@domain.tld ~/sieve/managesieve.sieve INBOX
sieve-filter(root): Fatal: Unknown user

sudo -u vmail sieve-filter -u postmaster@domain.tld ~/sieve/managesieve.sieve INBOX
sieve-filter(vmail): Fatal: Unknown user

Also there is the same question on serverfault, but without an answer.
https://serverfault.com/questions/1055407/how-to-make-sieve-filter-use-virtual-users

My environment is Ubuntu 20.04
dovecot --version
2.3.7.2 (3c910f64b)

--
Sincerely, Andrey Kunitsyn