Помогите прикрутить автоматическое создание 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 implementationSTART {
# 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Буду признателен за оказанную помощь!
>Помогите прикрутить автоматическое создание sieve-скриптов для пользователей в Cyrus-IMAPD.
>Делаю по рекомендациям c http://email.uoa.gr/projects/cyrus/autocreate/
>и в принципе, при первом конекте пользователя к sieve, создаётся папка пользователя
>в каталоге /var/lib/imap/sieve, только в ней не присутствует ни одного скрипта.
>
>Как прикрутить глобальный фильтр ко всем создаваемым пользователям ?
>И можно ли делать это, не требуя от пользователя подключения к sieve
>под своим аккаунтом ?Ну, тут нужно разделять... У Cyrus нет дефолтного скрипта. Т.е. в последних версиях можно include-ить определенный глобальный скрипт, но, прежде чем include-ить, у пользователя должен быть свой собственный скрипт, где эта директива присутствует. Тем не менее, можно от имени администратора навязывать пользователю свои скрипты. Если ему не понравится, то он может его поправить, а если пофиг - то извините ;)
>И второй вопрос.
>На сервере используются виртуальные домены и пользователи выглядят как user/test@domain.tldЦербер что-ле? Уважаю ...
>В cyrus-imapd есть возможность при помощи директив anysievefolder и autosievefolders
>автоматически создавать папки, необходимые для работы sieve-скрипта. Эта опция работает, но папкаПро опции эти не слышал. Но, собственно, в чём вопрос?
>[оверквотинг удален]
>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
>
>Буду признателен за оказанную помощь!
>Ну, тут нужно разделять... У Cyrus нет дефолтного скрипта. Т.е. в последних
>версиях можно include-ить определенный глобальный скрипт, но, прежде чем include-ить, у
>пользователя должен быть свой собственный скрипт, где эта директива присутствует. Тем
>не менее, можно от имени администратора навязывать пользователю свои скрипты.И как это реализовать ? Можно поподробнее ?
>Про опции эти не слышал. Но, собственно, в чём вопрос?
Вопрос в том как заставить Sieve создавать папку Spam не в корне домена, а в почтовом ящике пользователя ? Сейчас папка создаётся в корне домена, но затем тот же Sieve-скрипт ищет эту папку в ящике пользователя, и ,соответственно, не находит.
>>Ну, тут нужно разделять... У Cyrus нет дефолтного скрипта. Т.е. в последних
>>версиях можно include-ить определенный глобальный скрипт, но, прежде чем include-ить, у
>>пользователя должен быть свой собственный скрипт, где эта директива присутствует. Тем
>>не менее, можно от имени администратора навязывать пользователю свои скрипты.
>
>И как это реализовать ? Можно поподробнее ?Ну, как обычно - через expect ... В ручном режиме создается пользователь, а потом через sieveshell пользователю навязывается скрипт. У sieveshell ведь два параметра --user и --authname, специально для тех случаев, когда админ под своим логином манипулирует скриптами другого узера.
>
>>Про опции эти не слышал. Но, собственно, в чём вопрос?
>
>Вопрос в том как заставить Sieve создавать папку Spam не в
>корне домена, а в почтовом ящике пользователя ? Сейчас папка создаётся
>в корне домена, но затем тот же Sieve-скрипт ищет эту папку
>в ящике пользователя, и ,соответственно, не находит.Это же проделки autocreate патча. Он, по-моему, всегда отличался крайней глючностью, при том что предлагаемая им функциональность не так уж необходима ...
>[оверквотинг удален]
>>>версиях можно include-ить определенный глобальный скрипт, но, прежде чем include-ить, у
>>>пользователя должен быть свой собственный скрипт, где эта директива присутствует. Тем
>>>не менее, можно от имени администратора навязывать пользователю свои скрипты.
>>
>>И как это реализовать ? Можно поподробнее ?
>
>Ну, как обычно - через expect ... В ручном режиме создается пользователь,
>а потом через sieveshell пользователю навязывается скрипт. У sieveshell ведь два
>параметра --user и --authname, специально для тех случаев, когда админ под
>своим логином манипулирует скриптами другого узера.В общем вывод - заводить дефолт- скрипт на все 14 тысяч ящиков ручками (((
>>
>>>Про опции эти не слышал. Но, собственно, в чём вопрос?
>>
>>Вопрос в том как заставить Sieve создавать папку Spam не в
>>корне домена, а в почтовом ящике пользователя ? Сейчас папка создаётся
>>в корне домена, но затем тот же Sieve-скрипт ищет эту папку
>>в ящике пользователя, и ,соответственно, не находит.
>
>Это же проделки autocreate патча. Он, по-моему, всегда отличался крайней глючностью, при
>том что предлагаемая им функциональность не так уж необходима ...Если бы он не глючил, то и вопроса бы не возникло ;)
>[оверквотинг удален]
>>>
>>>И как это реализовать ? Можно поподробнее ?
>>
>>Ну, как обычно - через expect ... В ручном режиме создается пользователь,
>>а потом через sieveshell пользователю навязывается скрипт. У sieveshell ведь два
>>параметра --user и --authname, специально для тех случаев, когда админ под
>>своим логином манипулирует скриптами другого узера.
>
>В общем вывод - заводить дефолт- скрипт на все 14 тысяч ящиков
>ручками (((Мы же с вами, кажется, уже подобные вопросы обсуждали, нет? Не ручками, а expect-ом ...
>[оверквотинг удален]
>>>Вопрос в том как заставить Sieve создавать папку Spam не в
>>>корне домена, а в почтовом ящике пользователя ? Сейчас папка создаётся
>>>в корне домена, но затем тот же Sieve-скрипт ищет эту папку
>>>в ящике пользователя, и ,соответственно, не находит.
>>
>>Это же проделки autocreate патча. Он, по-моему, всегда отличался крайней глючностью, при
>>том что предлагаемая им функциональность не так уж необходима ...
>
>Если бы он не глючил, то и вопроса бы не возникло ;)
>
>Мы же с вами, кажется, уже подобные вопросы обсуждали, нет? Не ручками,
>а expect-ом ...Простите, а можно конкретнее как сим expect-ом пользоваться ?
>>Мы же с вами, кажется, уже подобные вопросы обсуждали, нет? Не ручками,
>>а expect-ом ...
>
>Простите, а можно конкретнее как сим expect-ом пользоваться ?Мне тоже интересно, получилось ли создавать скрипты для других пользователей? Почему-то администратором создаются скрипты только глобально, не получается конкретному юзеру скрипт установить.
>Мне тоже интересно, получилось ли создавать скрипты для других пользователей? Почему-то администратором
>создаются скрипты только глобально, не получается конкретному юзеру скрипт установить.Опцией --user или -u задается имя необходимого пользователя.