URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 83688
[ Назад ]

Исходное сообщение
"Sieve - автоматизация"

Отправлено Egenius , 16-Янв-09 10:59 
Помогите прикрутить автоматическое создание 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

Буду признателен за оказанную помощь!


Содержание

Сообщения в этом обсуждении
"Sieve - автоматизация"
Отправлено geekkoo , 16-Янв-09 14:42 
>Помогите прикрутить автоматическое создание 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
>
>Буду признателен за оказанную помощь!


"Sieve - автоматизация"
Отправлено Egenius , 17-Янв-09 08:04 
>Ну, тут нужно разделять... У Cyrus нет дефолтного скрипта. Т.е. в последних
>версиях можно include-ить определенный глобальный скрипт, но, прежде чем include-ить, у
>пользователя должен быть свой собственный скрипт, где эта директива присутствует. Тем
>не менее, можно от имени администратора навязывать пользователю свои скрипты.

И как это реализовать ? Можно поподробнее ?

>Про опции эти не слышал. Но, собственно, в чём вопрос?

Вопрос в том как заставить Sieve создавать папку Spam не в  корне домена, а в почтовом ящике пользователя ? Сейчас папка создаётся в корне домена, но затем тот же Sieve-скрипт ищет эту папку в ящике пользователя, и ,соответственно, не находит.


"Sieve - автоматизация"
Отправлено geekkoo , 19-Янв-09 08:22 
>>Ну, тут нужно разделять... У Cyrus нет дефолтного скрипта. Т.е. в последних
>>версиях можно include-ить определенный глобальный скрипт, но, прежде чем include-ить, у
>>пользователя должен быть свой собственный скрипт, где эта директива присутствует. Тем
>>не менее, можно от имени администратора навязывать пользователю свои скрипты.
>
>И как это реализовать ? Можно поподробнее ?

Ну, как обычно - через expect ... В ручном режиме создается пользователь, а потом через sieveshell пользователю навязывается скрипт. У sieveshell ведь два параметра --user и --authname, специально для тех случаев, когда админ под своим логином манипулирует скриптами другого узера.
>
>>Про опции эти не слышал. Но, собственно, в чём вопрос?
>
>Вопрос в том как заставить Sieve создавать папку Spam не в  
>корне домена, а в почтовом ящике пользователя ? Сейчас папка создаётся
>в корне домена, но затем тот же Sieve-скрипт ищет эту папку
>в ящике пользователя, и ,соответственно, не находит.

Это же проделки autocreate патча. Он, по-моему, всегда отличался крайней глючностью, при том что предлагаемая им функциональность не так уж необходима ...


"Sieve - автоматизация"
Отправлено Egenius , 19-Янв-09 10:15 
>[оверквотинг удален]
>>>версиях можно include-ить определенный глобальный скрипт, но, прежде чем include-ить, у
>>>пользователя должен быть свой собственный скрипт, где эта директива присутствует. Тем
>>>не менее, можно от имени администратора навязывать пользователю свои скрипты.
>>
>>И как это реализовать ? Можно поподробнее ?
>
>Ну, как обычно - через expect ... В ручном режиме создается пользователь,
>а потом через sieveshell пользователю навязывается скрипт. У sieveshell ведь два
>параметра --user и --authname, специально для тех случаев, когда админ под
>своим логином манипулирует скриптами другого узера.

В общем вывод - заводить дефолт- скрипт на все 14 тысяч ящиков ручками (((

>>
>>>Про опции эти не слышал. Но, собственно, в чём вопрос?
>>
>>Вопрос в том как заставить Sieve создавать папку Spam не в  
>>корне домена, а в почтовом ящике пользователя ? Сейчас папка создаётся
>>в корне домена, но затем тот же Sieve-скрипт ищет эту папку
>>в ящике пользователя, и ,соответственно, не находит.
>
>Это же проделки autocreate патча. Он, по-моему, всегда отличался крайней глючностью, при
>том что предлагаемая им функциональность не так уж необходима ...

Если бы он не глючил, то и вопроса бы не возникло ;)


"Sieve - автоматизация"
Отправлено geekkoo , 19-Янв-09 10:21 
>[оверквотинг удален]
>>>
>>>И как это реализовать ? Можно поподробнее ?
>>
>>Ну, как обычно - через expect ... В ручном режиме создается пользователь,
>>а потом через sieveshell пользователю навязывается скрипт. У sieveshell ведь два
>>параметра --user и --authname, специально для тех случаев, когда админ под
>>своим логином манипулирует скриптами другого узера.
>
>В общем вывод - заводить дефолт- скрипт на все 14 тысяч ящиков
>ручками (((

Мы же с вами, кажется, уже подобные вопросы обсуждали, нет? Не ручками, а expect-ом ...
>[оверквотинг удален]
>>>Вопрос в том как заставить Sieve создавать папку Spam не в  
>>>корне домена, а в почтовом ящике пользователя ? Сейчас папка создаётся
>>>в корне домена, но затем тот же Sieve-скрипт ищет эту папку
>>>в ящике пользователя, и ,соответственно, не находит.
>>
>>Это же проделки autocreate патча. Он, по-моему, всегда отличался крайней глючностью, при
>>том что предлагаемая им функциональность не так уж необходима ...
>
>Если бы он не глючил, то и вопроса бы не возникло ;)
>


"Sieve - автоматизация"
Отправлено Egenius , 22-Янв-09 15:33 
>Мы же с вами, кажется, уже подобные вопросы обсуждали, нет? Не ручками,
>а expect-ом ...

Простите, а можно конкретнее как сим expect-ом пользоваться ?


"Sieve - автоматизация"
Отправлено zhen , 05-Мрт-09 12:51 
>>Мы же с вами, кажется, уже подобные вопросы обсуждали, нет? Не ручками,
>>а expect-ом ...
>
>Простите, а можно конкретнее как сим expect-ом пользоваться ?

Мне тоже интересно, получилось ли создавать скрипты для других пользователей? Почему-то администратором создаются скрипты только глобально, не получается конкретному юзеру скрипт установить.


"Sieve - автоматизация"
Отправлено vpetrykanyn , 11-Сен-09 21:35 
>Мне тоже интересно, получилось ли создавать скрипты для других пользователей? Почему-то администратором
>создаются скрипты только глобально, не получается конкретному юзеру скрипт установить.

Опцией --user или -u задается имя необходимого пользователя.