Помогите прикрутить автоматическое создание sieve-скриптов для пользователей в Cyrus-IMAPD.
Делаю по рекомендациям c http://email.uoa.gr/projects/cyrus/autocreate/
и в принципе, при первом конекте пользователя к sieve, создаётся папка пользователя в каталоге /var/lib/imap/sieve, только в ней не присутствует ни одного скрипта.
Как прикрутить глобальный фильтр ко всем создаваемым пользователям ?
И можно ли делать это, не требуя от пользователя подключения к sieve под своим аккаунтом ?
И второй вопрос.
На сервере используются виртуальные домены и пользователи выглядят как user/test@domain.tld
В cyrus-imapd есть возможность при помощи директив anysievefolder и autosievefolders
автоматически создавать папки, необходимые для работы sieve-скрипта. Эта опция работает, но папка создаётся не в ящике пользователя, а в корневом каталоге домена и соответственно, затем при работе скрипт не находит папку, т.к. ищет её совсм не в том месте.
Вот мои конфиги./etc/cyrus.conf:
# standard standalone server implementation
START {
# do not delete this entry!
recover cmd="ctl_cyrusdb -r"
# this is only necessary if using idled for IMAP IDLE
idled cmd="idled"
}
# UNIX sockets start with a slash and are put into /var/lib/imap/sockets
SERVICES {
# add or remove based on preferences
imap cmd="imapd" listen="imap" prefork=5
imaps cmd="imapd -s" listen="imaps" prefork=1
pop3 cmd="pop3d" listen="pop3" prefork=3
pop3s cmd="pop3d -s" listen="pop3s" prefork=1
sieve cmd="timsieved" listen="localhost:sieve" prefork=0
# these are only necessary if receiving/exporting usenet via NNTP
# nntp cmd="nntpd" listen="nntp" prefork=3
# nntps cmd="nntpd -s" listen="nntps" prefork=1
# at least one LMTP is required for delivery
# lmtp cmd="lmtpd" listen="lmtp" prefork=0
lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
# this is only necessary if using notifications
# notify cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
}
EVENTS {
# this is required
checkpoint cmd="ctl_cyrusdb -c" period=30
# this is only necessary if using duplicate delivery suppression,
# Sieve or NNTP
delprune cmd="cyr_expire -E 3" at=0400
# this is only necessary if caching TLS sessions
tlsprune cmd="tls_prune" at=0400
/etc/imapd.conf:
admins: cyrus
allowanonymouslogin: no
allowplaintext: 1
autocreateinboxfolders: Drafts|Sent|Trash
autosubscribeinboxfolders: Drafts|Sent|Trash
autocreatequota: 25600
configdirectory: /var/lib/imap
defaultacl: cyrus lrswipcda
hashimapspool: 1
lmtp_downcase_rcpt: 1
lmtp_over_quota_perm_failure: 1
logtimestamp: 1
partition-default: /var/spool/imap
poptimeout: 1
postmaster: postmaster
quotawarn: 90
reject8bit: 0
sasl_mech_list: PLAIN
sasl_minimum_layer: 0
sasl_pwcheck_method: saslauthd
sendmail: /usr/sbin/sendmail
servername: domain.tld
sieveusehomedir: no
sievedir: /var/lib/imap/sieve
autocreate_sieve_script: /var/lib/imap/sieve/global/default_sieve_script
autocreate_sieve_compiledscript: /var/lib/imap/sieve/global/default_sieve_script.bc
generate_compiled_sieve_script: 1
sieve_maxscripts: 5
sieve_maxscriptsize: 64
singleinstancestore: yes
timeout: 30
tls_cert_file: /etc/pki/cyrus-imapd/server.pem
tls_key_file: /etc/pki/cyrus-imapd/server.pem
tls_ca_file: /etc/pki/cyrus-imapd/server.pem
tls_session_timeout: 15
umask: 077
unixhierarchysep: yes
virtdomains: userid
lmtp_overquota_perm_failure: yes
plaintextloginpause: 2
duplicatesuppression: 0
createonpost: yes
anysievefolder: yes
autosievefolders: Spam
sieve_extensions: fileinto reject vacation imapflags notify include envelope body relational regex subaddress copy
altnamespace: 0
userprefix: user: user
Буду признателен за оказанную помощь!