I have found the problem

auth debug helped me

sieve-filter -u test

```
Jan 27 03:38:03 mail dovecot: auth: Debug: master in: USER#0111#011test#011service=sieve-filter
Jan 27 03:38:03 mail dovecot: auth: Debug: ldap(test@domain.tld): Performing userdb lookup
Jan 27 03:38:03 mail dovecot: auth: Debug: ldap(test@domain.tld): user search: base=o=domains,dc=mail,dc=domain,dc=tld scope=subtree filter=(&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=sieve-filter)(|(mail=test@domain.tld)(&(enabledService=shadowaddress)(shadowAddress=test@domain.tld)))) fields=mail,mail,homeDirectory,mailboxFormat,mailboxFolder,mailQuota
Jan 27 03:38:03 mail dovecot: auth: Debug: ldap(test@domain.tld): no fields returned by the server
Jan 27 03:38:03 mail dovecot: auth: ldap(test@domain.tld): unknown user
Jan 27 03:38:03 mail dovecot: auth: Debug: ldap(test@domain.tld): Finished userdb lookup
Jan 27 03:38:03 mail dovecot: auth: Debug: userdb out: NOTFOUND#0111
```

doveadm user test

```
Jan 27 03:38:08 mail dovecot: auth: Debug: master in: USER#0111#011test#011service=doveadm#011debug
Jan 27 03:38:08 mail dovecot: auth: Debug: ldap(test@domain.tld): Performing userdb lookup
Jan 27 03:38:08 mail dovecot: auth: Debug: ldap(test@domain.tld): user search: base=o=domains,dc=mail,dc=domain,dc=tld scope=subtree filter=(&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=doveadm)(|(mail=test@domain.tld)(&(enabledService=shadowaddress)(shadowAddress=test@domain.tld)))) fields=mail,mail,homeDirectory,mailboxFormat,mailboxFolder,mailQuota
Jan 27 03:38:08 mail dovecot: auth: Debug: ldap(test@domain.tld): result: mail=test@domain.tld homeDirectory=/var/vmail/vmail1/domain.tld/t/r/a/test-2022.01.21.10.09.47/ mailQuota=1073741824 mailboxFolder=sdbox mailboxFormat=sdbox; mailboxFormat,homeDirectory,mailQuota,mail,mailboxFolder unused
Jan 27 03:38:08 mail dovecot: auth: Debug: ldap(test@domain.tld): Finished userdb lookup
Jan 27 03:38:08 mail dovecot: auth: Debug: userdb out: USER#0111#011test@domain.tld#011master_user=test@domain.tld#011home=/var/vmail/vmail1/domain.tld/t/r/a/test-2022.01.21.10.09.47/#011mail=sdbox:~/sdbox/#011quota_rule=*:bytes=1073741824
```

`(enabledService=sieve-filter)` is absent for users by default



вт, 25 янв. 2022 г. в 20:21, Андрей Куницын <abyss@fox5.ru>:
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



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


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