Hm, looks like I misunderstood initial error sieve-filter(root): Fatal: Unknown user
filter-sieve do not understand -u postmater@domain.tld
Where
(root) is about who runs the command, not who is not found

Anyway I've tried

# cd /var/vmail/vmail1/domain.tld/t/e/s/test-2022.01.22.05.55.26/sdbox/mailboxes/
#sieve-filter -c /etc/dovecot/dovecot.conf -v /var/vmail/sieve/dovecot.sieve INBOX                      
sieve-filter(root): Error: stat(/root/Maildir/tmp) failed: Permission denied (euid=2000(vmail) egid=2000(vmail) missing +x perm: /root, dir owned by 0:0 mode=0700)
sieve-filter(root): Fatal: Couldn't open source mailbox 'INBOX': Internal error occurred. Refer to server log for more information. [2022-01-25 14:46:35]

sudo -u vmail sieve-filter -c /etc/dovecot/dovecot.conf -v /var/vmail/sieve/dovecot.sieve INBOX                                                                          
sieve-filter(vmail): Info: Mailbox created: INBOX

/home/vmail/Maildir was created after that and  not in the current directory

I've tried  '-u test', '-u test@domain.tld', '-u test@mail.domain.tld' and passed config  '-c /etc/dovecot/dovecot.conf.'
And still got
Fatal: Unknown user

How do sieve-filters understand virtual users?

вт, 25 янв. 2022 г. в 18:31, Eric Wood <eric@interplas.com>:
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.

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

--
Sincerely, Andrey Kunitsyn



--
С уважением, Куницын Андрей.