Всем привет! Переехал с Courier на Dovecot и столкнулся с проблемой при попытке настроить шареные папки.---------------
Dovecot 2.0.18 из портов.namespace {
separator = .
prefix = INBOX.
inbox = yes
type = private
}
namespace {
type = shared
separator = .
prefix = INBOX.shared.%%u.
list = yes
subscriptions = no
hidden = no
location = maildir:%%h
}
password_query = \
SELECT email as username, password \
FROM users WHERE email = '%n@%d'user_query = SELECT CONCAT('/var/spool/mail/', SUBSTRING_INDEX(email, '@', -1), '/', SUBSTRING_INDEX(email, '@', 1)) as home from `users` WHERE email='%n@%d'
---------------
Расшарил ящик 'victor@domain.com' для 'victor@testmail.domain.com'
Проверяю:
doveadm acl debug -u victor@testmail.domain.com INBOX.shared.victor@domain.com.
doveadm(victor@testmail.domain.com): Error: Couldn't create namespace 'INBOX.shared.' for user victor@domain: userdb didn't return a home directory, but mail_location used it (%h): maildir:%h
Смотрю в дебаг-лог:
auth-worker: Debug: sql(victor@domain): SELECT CONCAT('/var/spool/mail/', SUBSTRING_INDEX(email, '@', -1), '/', SUBSTRING_INDEX(email, '@', 1)) as home from `users` WHERE email='victor@domain'
Отсюда видно, что 'victor@domain' - обрезанный логин от 'victor@domain.com'.
Получается, что когда Dovecot берет домен (%%d) из acl, то он обрезает его до первой точки.Кто знает куда копать?
> password_query = \
> SELECT email as username, password \
> FROM users WHERE email = '%n@%d'Видимо, s/as username,/as user,/ ...
>> password_query = \
>> SELECT email as username, password \
>> FROM users WHERE email = '%n@%d'
> Видимо, s/as username,/as user,/ ...Так тоже пробовал, не помогает.
В данном случае, домен и юзера он берет из acl, обрезая до первой точки.
Т.е., запросы настроены верно.
Как я и думал, починилось изменением нэймспэйса на "родной" для Dovecot.namespace {
separator = /
prefix =
inbox = yes
}namespace {
separator = .
prefix = INBOX.
inbox = no
hidden = yes
list = no
alias_for =
}namespace {
type = shared
separator = /
prefix = shared/%%u/
list = yes
subscriptions = no
hidden = no
location = maildir:%%h:INDEX=%h/shared/%%u
}Печально - клиентам пришлось сделать заново синхронизацию. Аутлуки дружно повисли, как всегда.
Обидно... баг явно в Dovecot.