Страница 1 из 1
exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-03 14:08:08
UST
Настраиваю связку exim+dovecot c авторизацией и получением юзерских ящиков через win2003 active directory. Работает, однако новопришедшая почта кладется в /var/mail/exim/
usermailbox@domain.com, а забирается аутлуком по имапу из /var/mail/exim/username. В результате, почту пользователь не получает. Где грабли? Конфиг dovecot такой:
Код: Выделить всё
base_dir = /var/run/dovecot
protocols = imap
listen = *
disable_plaintext_auth = no
shutdown_clients = yes
ssl = no
mail_location = maildir:/var/mail/exim/%Lu
mail_privileged_group = mail
verbose_proctitle = yes
first_valid_uid = 26
last_valid_uid = 26
first_valid_gid = 26
last_valid_gid = 26
maildir_copy_with_hardlinks = yes
login_greeting = dovecot MUA ready
protocol imap {
imap_client_workarounds = delay-newmail outlook-idle tb-extra-mailbox-sep
}
protocol lda {
postmaster_address = postmaster@domain.com
sendmail_path = /usr/sbin/sendmail
auth_socket_path = /var/run/dovecot/auth-master
# log_path = /var/log/dovecot/deliver.log
# info_log_path = /var/log/dovecot/deliver.log
}
auth_cache_size = 1024
auth_username_format = %Lu
auth default {
mechanisms = plain
passdb pam {
args = exim
}
userdb static {
args = uid=26 gid=26 home=/var/mail/exim/%Lu allow_all_users=yes
}
user = root
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
# Default user/group is the one who started dovecot-auth (root)
user = mailnull
#group = mail
}
}
}
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-03 17:10:37
barsykoff
Ну если постфикадмин стоит в качестве админки, то грабли, скорее всего там. А чем почта раскладывается по папкам?
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-04 8:09:59
Гость
Довкотом и раскладывается. Транспорт экзима такой:
Код: Выделить всё
dovecot_delivery:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
# $authenticated_id
# $local_part@$domain
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
user = mailnull
Вообще, суть проблемы ясна - в опцию mail_location конфига довкота нужно вписать что-то, соответствующее ящику. Но что?
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-04 9:23:04
barsykoff
Меня на самом деле смущает буква L в данной строчке:
Что-то в документации я не нашел подобного.. А вообще есть несколько опций, выберите, какая вам больше подходит
Код: Выделить всё
# Некоторые переменные:
#
# %u - имя пользователя (будет вида user@domain.ru)
# %n - локальная часть в адресе (будет вида user)
# %d - доменная часть в адресе (будет вида domain.ru)
# %h - домашняя директория
#
# Такой путь записан в конфиге postfixadmin (будет вида /var/mail/exim/domain.ru/user)
mail_location = maildir:/var/mail/exim/%d/%n
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-07 9:14:58
UST
Буква L означает, что все что после нее будет приведено к нижнему регистру. В том-то и дело, что имена пользователей НЕ совпадают с названиями ящиков, в документации довкота для таких случаев ничего нет.
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-07 10:23:06
barsykoff
http://www.lissyara.su/?id=1455 - не Ваш ли случай?
Однако, вот dovecot не умеет работать с saslauthd - аффтар посчитал, что вполне хватит встроенного sasl`a... Вот с этого момента начались пляски с бубном - напрямую в AD dovecot лазить умеет, умеет даже авторизоваться от имени пользователя, однако, у меня не заработало - искался пользователь
vasya@my-domain.local а ldap, врезультате поиска возвращал просто vasya - что ему и не нравилось... Указание просто васи - приводило к "инвалид крединтиалс".
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-07 12:00:13
UST
Я по этой статье и настраивал, но того что нужно там нет - довкот авторизуется нормально. Но кладет пришедшую почту он в папку вида
mailbox@domain.com, а отдает из папки username - в этом вся проблема.
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-07 13:05:58
CrazyPilot
Эм, не знаю, подойдет ли вам это, с учетом постфикс админки. Но у себя я сделал так:
Транспорт в exim:
Код: Выделить всё
dovecot_delivery:
driver = pipe
command =/usr/local/libexec/dovecot/deliver -d "${lookup ldap{user=CN=ldap%20ldap,CN=Users,DC=example,DC=com pass=12345678 ldap:///dc=example,dc=com?sAMAccountName?sub?(&(mail=${quote_ldap:$local_part@$domain}))}{$value}}"
user = mailnull
group = mail
delivery_date_add = true
envelope_to_add = true
return_path_add = true
В итоге dovecot получает sAMAccountName в качестве имени пользователя. Ищет его в Active Directory, откуда получает
Код: Выделить всё
---------------
dovecot.conf
---------------
....
mail_location = maildir:~
....
---------------
dovecot-ldap.conf
---------------
.....
user_attrs=mail=home=/var/mail/%$
.....
user_attrs как раз присоединяет значение свойства mail найденного юзера в AD к /var/mail/.
Как-то так. Хоть и выглядит как масло масляное, но работает без нареканий. Хотя может потому что пользаков мало, около 200...
Вся почта на массиве у меня хранится именно в виде /var/mail/
someuser@example.com. Вместо аутглюка у меня thunderbird...может в этом все дело...
P.S. Не пойму как у вас на AD все завязано, если user-db static. Или оно тупо всех пускает, а passdb через pam? Имхо, как-то не так сделано, а если я захочу юзеру мыло какое-нить особенное прописать? Типа извините, selavi?
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-07 14:01:27
UST
---------------
dovecot-ldap.conf
---------------
.....
user_attrs=mail=home=/var/mail/%$
Вот это как раз не работает. Вообще, весь dovecot-ldap.conf в дефолтном виде, похоже, довкот вообще его не смотрит. Такое может быть?
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-07 15:20:58
CrazyPilot
UST писал(а):
Вообще, весь dovecot-ldap.conf в дефолтном виде, похоже, довкот вообще его не смотрит. Такое может быть?
Конечно может. Довекот у вас, как, стелепатировать должен, где ему что искать? :-) (Судя по приведенному выше конфигу)
Должно быть нечто такое:
Код: Выделить всё
[root@flanker ~]# vim /usr/local/etc/dovecot.conf
.......
userdb ldap {
args = /usr/local/etc/dovecot-ldap.conf
}
........
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-07 15:42:56
UST
Блин, запутался. Ничего не работает. Можно полные конфиги довкота?
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-07 15:54:38
CrazyPilot
Хм, да пожалста :-)
dovecot.conf
Код: Выделить всё
protocols = imap
listen = *
disable_plaintext_auth = no
ssl_disable = yes
mail_location = maildir:~
mail_access_groups = mail
verbose_proctitle = yes
first_valid_uid = 26
last_valid_uid = 26
maildir_copy_with_hardlinks = yes
log_path = /var/log/dovecot.log
auth_cache_size = 0
auth_username_format = %Lu
mail_uid = 26
mail_gid = 6
# Logging
#mail_debug=yes
#auth_debug=yes
protocol imap {
imap_client_workarounds = delay-newmail outlook-idle tb-extra-mailbox-sep
#mail_plugins = quota imap_quota
}
protocol lda {
postmaster_address = postmaster@example.com
sendmail_path = /usr/sbin/sendmail
auth_socket_path = /var/run/dovecot/auth-master
#mail_plugins = quota
}
plugin {
#quota = maildir:User max. mailbox size
#quota_rule = *:storage=3G
#quota_rule2 = Trash:storage=500M
#quota_rule3 = SPAM:ignore
}
auth default {
mechanisms = plain
# Uncomment this to auth users in Active Directory
passdb ldap {
args = /usr/local/etc/dovecot-ldap.conf
}
# Commnet this passdb when users auth in Active Directory
# passdb passwd-file {
# args = /tmp/passwd_dovecot
# }
userdb ldap {
args = /usr/local/etc/dovecot-ldap.conf
}
# This is for Xerox senders
userdb passwd-file {
args = /usr/local/etc/dovecot_senders.db
}
passdb passwd-file {
args = scheme=PLAIN /usr/local/etc/dovecot_senders.db
}
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
# Default user/group is the one who started dovecot-auth (root)
user = mailnull
group = mail
}
client {
path = /var/run/dovecot/auth-client
mode = 0666
user = mailnull
group = mail
}
}
}
dovecot-ldap.conf
Код: Выделить всё
hosts = boss2.example.ru:3268 boss1.example.ru:3268
# Distinguished Name - the username used to login to the LDAP server
dn = CN=ldap ldap,CN=Users,DC=example,DC=ru
# Password for LDAP server
dnpass = 12345678
# LDAP library debug level as specified by LDAP_DEBUG_* in ldap_log.h. -1 = everything.
#debug_level = -1
# Use authentication binding for verifying password's validity.
auth_bind = yes
# LDAP protocol version to use. Likely 2 or 3.
ldap_version = 3
# LDAP base. %variables can be used here.
base = dc=example, dc=ru
# Dereference: never, searching, finding, always
deref = searching
# Search scope: base, onelevel, subtree
scope = subtree
# There are also other special fields which can be returned, see
# http://wiki.dovecot.org/UserDatabase/ExtraFields
#user_attrs = mail = mail =maildir:/var/mail/%$,=home=/var/mail/
user_attrs=mail=home=/var/mail/%$ #,postalCode=quota_rule=*:storage=%$M
# Filter for user lookup. Some variables can be used (see
# http://wiki.dovecot.org/Variables for full list):
# %u - username
# %n - user part in user@domain, same as %u if there's no domain
# %d - domain part in user@domain, empty if user there's no domain
user_filter = (&(objectClass=user)(!(objectClass=computer))(sAMAccountName=%u))
# Filter for password lookups
pass_filter = (&(objectClass=user)(!(objectClass=computer))(sAMAccountName=%u))
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-08 11:38:43
UST
Cпасибо! Заработало. Последний штрих: как сделать, чтобы при первом логине юзера папка его почты создавалась автоматически? Сейчас в логах такое:
Код: Выделить всё
Sep 8 12:36:04 spb-router dovecot: IMAP(username): file_dotlock_open() failed with file /var/mail/exim/userbox@domain.ru/dovecot.index.log: No such file or directory
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-08 11:39:51
UST
Хм, перезапустил аутлук, все создалось. Вопрос снят. Еще раз спасибо.
Re: exim+dovecot: разные папки при получении и доставке
Добавлено: 2009-09-08 14:18:20
CrazyPilot
Good luck
