Товарисч
Код: Выделить всё
From: Marat Kasimov <mar@udcom.ru>
Возникла потребность в новом почтовом сервере по ряду причин и т.к. до этого был проприетарный CommunigatePro, пришлось рассмотреть несколько других вариантов. Хотелось собрать удобную штуку с администрированием через веб, веб мордой для почты и т.п. Ну и убедившись, что самый хороший вариант должен основываться на MTA exim собрал следующую штуку.
Все было собрано на Debian, ну думаю проблем при сборке во фре также наблюдаться не будет.
1. Ставим полновесный exim4 с поддержкой mysql и всего прочего.
2. Ставим апач 1.3 (ну или 2) с поддержкой php, настраиваем виртуальный хост
Код: Выделить всё
<VirtualHost 192.168.67.20:80>
ServerAdmin webmaster@example.ru
DocumentRoot /var/www/vexim
ServerName mail2.example.ru
ServerAlias www.mail2.example.ru
ErrorLog /etc/apache/log/mail2.example.ru-error.log
CustomLog /etc/apache/log/mail2.example.ru-access.log combined
<Directory "/var/www/vexim">
Options -Indexes -FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
Allow from all
php_admin_flag engine On
php_admin_flag register_globals off
<IfModule mod_mime.c>
AddType application/x-httpd-php .html .php .php3 .php4 .inc .tpl
AddHandler application/x-httpd-php .php .php3 .html .htm .inc .tpl
</IfModule>
php_admin_flag log_errors on
php_admin_flag display_errors on
php_admin_value session.name UID
php_admin_flag safe_mode Off
php_admin_flag enable_dl Off
php_admin_value max_execution_time 300
</Directory>
</VirtualHost>
Код: Выделить всё
adduser --system --home /var/spool/vexim --disabled-password --disabled-login --group vexim
5. Ставим mysql-server4.1:
Код: Выделить всё
mysql -u root password
6. Ставим vexim
Код: Выделить всё
wget http://silverwraith.com/vexim/vexim2.2.1.tar.gz
В папке ./setup редактируем mysql.sql 6 и 7 строку заменя UID&GID на соответсвующий пользователю vexim, в 69 строке заменяем CHANGE на пароль который будет использоваться для доступа к создаваемой базе. Ну и создаем базу:
Код: Выделить всё
mysql -u root -p < mysql.sql
Копируем /vexim2/setup/configure и /vexim2/docs/vexim* в /etc/exim4/, и настраиваем configure:
Код: Выделить всё
MAILMAN_USER=Debian-exim (UID)
MAILMAN_GROUP=103 (GID)
Код: Выделить всё
hide mysql_servers = localhost::(/tmp/mysql.sock)/vexim/vexim/CHANGE
Заменяем в exim_user = mailnull и exim_group = mail на пользователя exim и GID, ну и везде заменяем mailnull и mail на соответсвующих пользователей.
Все готово, проверяем:
Код: Выделить всё
exim -bV -C /etc/exim4/configure
Код: Выделить всё
exim -bt <local username>
Код: Выделить всё
exim -bd -q 30m -C /etc/exim4/configure
Заходим на http, логин siteadmin, пароль CHANGE, потом лучше его сменить, ну и тут уже все делаем. При создании UID и GID указываем как у запущенного exim. Домен редактируем под администратором домена.
Также необходимо создать папку для хранения почты (maildir) с владельцем пользователя exim, которую потом ,будете указывать при создании доменов, т.к. сам он её не создает.
7. Ставим Courier IMAP и POP3 сервер.
Imapd (все отлично работает с начальными настройками):
Код: Выделить всё
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=20
PIDFILE=/var/run/courier/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
LOGGEROPTS="-name=imapd"
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
IMAP_KEYWORDS=1
IMAP_ACL=1
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
IMAP_PROXY=0
IMAP_PROXY_FOREIGN=0
IMAP_IDLE_TIMEOUT=60
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=0
IMAP_OBSOLETE_CLIENT=0
IMAP_UMASK=022
IMAP_ULIMITD=65536
IMAP_USELOCKS=1
IMAP_SHAREDINDEXFILE=/etc/courier/shared/index
IMAP_ENHANCEDIDLE=0
IMAP_TRASHFOLDERNAME=Trash
IMAP_EMPTYTRASH=Trash:7
IMAP_MOVE_EXPUNGE_TO_TRASH=0
SENDMAIL=/usr/sbin/sendmail
HEADERFROM=X-IMAP-Sender
IMAPDSTART=YES
MAILDIRPATH=Maildir
Код: Выделить всё
PIDFILE=/var/run/courier/pop3d.pid
MAXDAEMONS=40
MAXPERIP=4
POP3AUTH=""
POP3AUTH_ORIG="PLAIN LOGIN CRAM-MD5 CRAM-SHA1 CRAM-SHA256"
POP3AUTH_TLS=""
POP3AUTH_TLS_ORIG="LOGIN PLAIN"
POP3_PROXY=0
PORT=110
ADDRESS=0
TCPDOPTS="-nodnslookup -noidentlookup"
LOGGEROPTS="-name=pop3d"
POP3DSTART=YES
MAILDIRPATH=Maildir
Код: Выделить всё
authmodulelist="authmysql"
Код: Выделить всё
ДMYSQL_SERVER localhost
MYSQL_USERNAME vexim
MYSQL_PASSWORD <Ваш пароль для доступа к базам vexim>
MYSQL_SOCKET /var/run/mysqld/mysqld.sock #Или где он у вас там находиться
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE vexim
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD crypt
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD pop
MYSQL_NAME_FIELD realname
Думаю с дальнейшими настройками разберетесь сами, для начала можно отключить ACL с SPF, если не знаете как он работает.