вторник, 1 мая 2012 г.

Виртуальные домены на sendmail+cyrus-imap

В sendmail.mc пишем:
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`confLOCAL_MAILER', `cyrusv2')
mailer(`cyrusv2')

После компиляции в sendmail.cf надо внести изменения в разделе про cyrus (@todo: сделать это sendmail.mc):
S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n,

В mailertable для каждого домена:
example.com cyrusv2:/var/imap/socket/lmtp

В access:
From:example.com RELAY

В imapd.conf:
defaultdomain: example.com
unixhierarchysep: 1
virtdomains: userid
admins: admin
tls_cert_file: /var/imap/server.pem
tls_key_file: /var/imap/server.pem


Пользователь admin будет управлять всеми ящиками на всех доменах. Если надо админа для конкретного домена, то пишем так:
admins: admin, admin@example2.com

Создаем сертификат и ключи:
openssl req -new -x509 -nodes -out /var/imap/server.pem -keyout /var/imap/server.pem -days 365
Когда спросят про "Common Name (eg, YOUR name)" нужно ввести имя того же домена, который прописан в defaultdomain (здесь - example.com).

Прописываем для админа пароль:
saslpasswd2 -c admin@example.com

И начинаем создавать ящики:
cyradm --user admin@example.com example.com
cm user/user1@example.com
cm user/user1@example2.com

Пароли для них так же прописываются через saslpasswd2:
saslpasswd2 -c user1@example.com
saslpasswd2 -c user1@example2.com

Источники:
http://cyrusimap.web.cmu.edu/docs/cyrus-imapd/2.3.16/install-configure.php
http://cyrusimap.web.cmu.edu/docs/cyrus-imapd/2.3.16/install-virtdomains.php
http://cyrusimap.web.cmu.edu/mediawiki/index.php/Cyrus_Virtual_Domains