У меня есть сервер postfix, работающий на моем компьютере с CentOS 7.
Мне удалось настроить сервер postfix для использования моего сервера LDAP для получения учетных записей, и он отлично работает, электронные письма принимаются и сохраняются в файл почтового ящика.
Я использую Dovecot в качестве сервера IMAP. Они прекрасно работают вместе для всех пользователей, кроме тех, у которых есть псевдонимы.
Проблема в том, что Dovecot ищет файл почтового ящика с пользовательским maildrop
атрибут (который, конечно, уникален). Однако файл почтового ящика, созданный Postfix, представляет собой список всех mail
атрибуты (которые представляют собой список псевдонимов).
Например, предположим, что пользователь с cn=user, maildrop=user, mail=user, mail=alias
.
В этом случае файл почтового ящика, созданный Postfix, будет называться user,alias
, а Dovecot будет искать файл с именем user
.
Теперь, конечно, я мог бы начать выяснять, как заставить Dovecot искать файл с именем user,alias
, но это будет означать, что каждый раз, когда к учетной записи добавляется новый псевдоним, все электронные письма нельзя будет отозвать, пока этот псевдоним не будет удален.
Итак, мне нужна помощь, так это настроить Postfix для вызова файла почтового ящика. user
, даже когда mail=user
имеет несколько псевдонимов.
Соответствующая часть main.cf
:
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf
virtual_mailbox_domains = mail.ropi.dev, ropi.dev
virtual_mailbox_base = /var/mail/mail_default
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_minimum_uid = 3000
virtual_uid_maps = static:3000
virtual_gid_maps = static:3000
virtual_transport = virtual
ldap-accounts.cf
:
# ...
query_filter = (&(objectClass=mailUser)(maildrop=%u))
result_attribute = mail
version = 3
ldap-aliases.cf
:
# ...
query_filter = (&(objectClass=mailUser)(mail=%u))
result_attribute = maildrop
version = 3
Я осознал свою ошибку, мне нужно было доработать ldap-accounts.cf
таким образом, что он не возвращает псевдонимы (mail
), но «основной» адрес электронной почты, который находится в maildrop
атрибут.