Почтовый сервер на основе Postfix+Dovecot+Mysql+AMaViS
Необходимые компоненты
* Postfix чтобы получать поступающие письма из internet и хранит их в почтовых ящиках пользователей на жёстком диске .
* Dovecot, Позволяет пользователям получать их письма на почтовый клиент через POP3 и IMAP
* Squirrelmail Как интерфейс webmail
* MySQL КАК база данных системы, которая загружает информацию о ваших доменах , отчетности пользователя и email пересылок
* AMaViS ДЛЯ сканирования поступающих писем на наличие вирусов, spam и нежелательных вложений .
Расписывать подробно тут про Postfix и Dovecot я не намерен , если кого то интересует дополнительная информация , добро пожаловать сюда Postfix http://afti.ru/start.html , Dovecot http://www.dovecot.org/
Для начало в /etc/apt/sources.list надо добавить нужные ссылки на допольнительные репозитарии , будем использовать редактор vim
Код:
vim /etc/apt/sources.list
в открывшемся файле добавляем следующие строки , в моём случае это локальный репозит , вы же можете использовать репозиты из интернета
далее выполняем
Код:
aptitude update или apt-get update
Теперь установим Postfix с поддержкой Mysql , устанавливать будем с зависимостями
Код:
aptitude install postfix-mysql
Затем нужно установиться сам Mysql , в котором будут храниться базы данных почтового сервера .В этих базах будут содержаться структуры таблиц доменов , транспорта , квоты , юзеры и их пароли .
Код:
aptitude install mysql-server-5.0
Ставим Dovecot , он будет обслуживать запросы пользователей с помощью протоколов imap, imaps, pop3, pop3s
Код:
aptitude install dovecot-pop3d
aptitude install dovecot-imapd
Желательно , установить спам-фильтры и антивирус , если вы не хотите , чтобы ваш почтовый сервер стал сервером рассылки спама и вирусов и попал бы в блэк-листы !
Код:
aptitude install amavisd-new libclass-dbi-mysql-perl
aptitude install spamassassin clamav-daemon cpio arj zoo nomarch lzop cabextract pax
Установим OpenSSL , он будет создавать сертификаты SSL (
SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, обеспечивающий безопасную передачу данных по сети Интернет)
Код:
aptitude install openssl
Для облегчения установим PhpMyAdim , сам уже довольно редко пользуюсь им , просто он будет нужен для облегчения работы с базами данных mysql
Код:
aptitude install phpmyadmin libapache2-mod-php5 php5-mysql
Так с этим вроде бы покончили , приступаем к созданию баз данных и юзеров , для начало установим пароль на mysql
mysqladmin password ваш пароль
Создадим базу данных под названием mailserver
mysqladmin -p create mailserver
Создавать базы данных , юзеров и таблицы , можно и другими способами , не посредственно из mysql или с помощью phpmyadmin
Теперь заходим в mysql
PHP код:
mysql -u root -p ваш пароль
и выполняем следующие команды , создаём пользователя mailuser c паролем mailuser2008 для базы данных mailserver
PHP код:
mysql>
GRANT SELECT ON mailserver.*
TO mailuser@localhost
IDENTIFIED BY 'mailuser2008';
mysql> use mailserver;
Database changed
Создаём таблицу виртуальных доменов
mysql> CREATE TABLE `virtual_domains` (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
) ENGINE = InnoDB;
Создадим таблицу виртуальных юзеров
mysql>CREATE TABLE `virtual_users` (
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
domain_id INT(11) NOT NULL,
user VARCHAR(40) NOT NULL,
password VARCHAR(32) NOT NULL,
CONSTRAINT UNIQUE_EMAIL UNIQUE (domain_id,user),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE = InnoDB;
Также нужно создать таблицу виртуальных алиасов , для пересылки писем с одного аккаунта на другой аккаунт
mysql>CREATE TABLE `virtual_aliases` (
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
domain_id INT(11) NOT NULL,
source VARCHAR(40) NOT NULL,
destination VARCHAR(80) NOT NULL,
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE = InnoDB;
Выходим из mysql
exit
################################################## ########## #####
Примеры созданных таблиц
virtual_domains id name
1 example.com
2 foobar.org
virtual_users
id domain_id user password
1 1 john summersun
2 1 steve veryloud
virtual_aliases
id domain_id source destination
1 1 steve steve.miller@gmail.com
2 2 kerstin kerstin42@yahoo.com
3 2 kerstin kerstin@mycompany.com
################################################## ########## ######
Начинаем создавать конфигурационные файлы для Postfix
vim /etc/postfix/mysql-virtual-mailbox-domains.cf
в файле прописываем следующие строки
user = mailuser
password = mailuser2008
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
создаём следующие файлы конфигураций
Внесём изменения в конфигурационный файл Postfix main.cf , выполняем это командой postconf -e ,
postconf -e добавляет конфигурационные строки в наш main.cf
Код:
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
Возвращаемся в mysql в БД mailserver
mysql -p mailserver
Там создаём виртуальный домен
PHP код:
INSERT INTO virtual_domains (id, name) VALUES (1, 'example.com');
exit
Возвращаемся в консоль и проверяем правильность настроек виртуального домена командой, не забудьте сменить домен с example.com на свой.
Код:
postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
Результат должен быть:
1
Добавляем юзера и группу vmail
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
Вносим их в main.cf
postconf -e virtual_uid_maps=static:5000
postconf -e virtual_gid_maps=static:5000
Опять возвращаемся в mysql
mail - u root -p ваш пароль
и создаём виртуально пользователя , например belfigor
PHP код:
mysql>
INSERT INTO virtual_users (id, domain_id, user, password)
VALUES (1, 1, 'belfigor', MD5('belfigorsuperstar'));
Проверям :
PHP код:
mysql>
SELECT CONCAT(virtual_users.user, '@', virtual_domains.name) AS email
FROM virtual_users
LEFT JOIN virtual_domains ON virtual_users.domain_id=virtual_domains.id;
Mysql должно напечатать следущие :
+------------------+
| email |
+------------------+
|belfigor@example.com |
+------------------+
Директория для этого юзера будет создана , такого типа /home/vmail/example.com/belfigor
Выполняем запрос на поле пароля в mysql
PHP код:
SELECT CONCAT(virtual_users.user, '@', virtual_domains.name) AS email,
virtual_users.password
FROM virtual_users
LEFT JOIN virtual_domains ON virtual_users.domain_id=virtual_domains.id;
Результат должен быть такой :
Код:
+------------------+----------------------------------+
| email | password |
+------------------+----------------------------------+
| belfigor@example.com | 14cbfb845af1f030e372b1cb9275e6dd |
+------------------+----------------------------------+
Потом нам необходимо создать view в базе данных для нормальной работы сервера Postfix
mysql -u root -p ваш пароль
PHP код:
mysql>use mailserver;
mysql>
CREATE VIEW view_users AS
SELECT CONCAT(virtual_users.user, '@', virtual_domains.name) AS email,
virtual_users.password
FROM virtual_users
LEFT JOIN virtual_domains ON virtual_users.domain_id=virtual_domains.id;
Создадим cf файл
vim /etc/postfix/mysql-virtual-mailbox-maps.cf
user = mailuser
password = mailuser2008
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM view_users WHERE email='%s'
Добавляем в main.cf эти строки
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
Проверяем если такой виртуальный юзер на сервере
postmap -q belfigor@example.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
Если видим результат 1 значит всё в порядке
Создадим в БД mailserver алиасы для юзера belfigor@example.com
PHP код:
mysql>
INSERT INTO virtual_aliases (id, domain_id, source, destination)
VALUES (1, 1, 'belfigor', 'belfigor@example.com'),
(2, 1, 'belfigor', 'raymond@gmail.com');
И тут же создаём view для виртуальных алиасов
PHP код:
mysql>
CREATE VIEW view_aliases AS
SELECT CONCAT(virtual_aliases.source, '@', virtual_domains.name) AS email,
destination
FROM virtual_aliases
LEFT JOIN virtual_domains ON virtual_aliases.domain_id=virtual_domains.id;
Проверим наши алиасы:
mysql>
SELECT * FROM view_aliases;
Видим:
+------------------+-------------------+
| email | destination |
+------------------+-------------------+
|belfigor@example.com |belfigor@example.com|
|belfigor@example.com | raymond@gmail.com|
+------------------+-------------------+
Выходим из mysql quit;
Создём ещё один cf файл
vim /etc/postfix/mysql-virtual-alias-maps.cf
В него вносим
user = mailuser
password = mailuser2008
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM view_aliases WHERE email='%s'
Тестируем postmap -q belfigor@example.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf
Назначения должно быть следующего вида
belfigor@example.com,raymond@gmail.com
Сотворим cf файл
vim /etc/postfix/mysql-email2email.cf
в нём пишем
Код:
user = mailuser
password = mailuser2008
hosts = 127.0.0.1
dbname = mailserver
query = SELECT email FROM view_users WHERE email='%s'
Проверяем :
postmap -q belfigor@example.com mysql:/etc/postfix/mysql-email2email.cf
Результат :
belfigor@example.com
Добавим также строки в наш main.cf
Выставим нужные права , на наши конфигурационные файлы
Код:
chgrp postfix /etc/postfix/mysql-*.cf
chmod u=rw,g=r,o= /etc/postfix/mysql-*.cf
Следующий шаг , пересылка писем через Dovecot LDA
Находим файл master.cf в директории /etc/postfix/master.cf
в конце добавляем такие строки
vim /etc/postfix/master.cf
Код:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
После перегружаем Postfix
Добавляем в main.cf строки , в консоли набираем
Код:
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1
################################################## ########## ####
C Postfix пока закончили , переходим к настройке Dovecot
Начнём с конфигурационного файла Dovecot который находиться в директории /etc/dovecot/
vim /etc/dovecot/dovecot.conf
Убираем # (с закомментированных строк)
Код:
protocols = imap imaps pop3 pop3s
disable_plaintext_auth = no
mail_location = maildir:/home/vmail/%d/%n/Maildir
Затем найдите секцию namespace private и пропишите следующие
Код:
namespace private {
separator = .
prefix = INBOX.
inbox = yes
}
Секция "auth default"должна выглядеть так :
Эта секция
Код:
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
Скажет Dovecot , что пароли хранятся в SQL database :
PHP код:
userdb static {
args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
}
Идём в секцию socket listen и приводим её в такое состояние
PHP код:
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
Ну и на последок в секции protocol lda
Прописываем следующие
PHP код:
protocol lda {
log_path = /home/vmail/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = postmaster@example.com
mail_plugins = cmusieve
global_script_path = /home/vmail/globalsieverc
}
Отредактируем файл dovecot-sql.conf
vim /etc/dovecot/dovecot-sql.conf
Код:
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=mailuser2007
default_pass_scheme = PLAIN-MD5
password_query = SELECT email as user, password FROM view_users WHERE email='%u';
Перезагрузим Dovecot
/etc/init.d/dovecot restart
Срочно бежим в логи и проверяем /var/log/mail.log, должно быть ТАК :
dovecot: Dovecot v1.0.rc15 starting up
dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mymailserver)
Выставим нужные права на /etc/dovecot/dovecot.conf
Код:
chgrp vmail /etc/dovecot/dovecot.conf
chmod g+r /etc/dovecot/dovecot.conf
Перезагружаем Postfix и Dovecot
PHP код:
/etc/init.d/postfix restart
/etc/init.d/dovecot restart
################################################## ########## #####
Теперь настаёт очень ОТВЕТСТВЕННЫЙ момент , мы начинаем КВН
, шутка , мы будем тестировать наши smtp
и pop сервера !
в консоли :
дожно появиться следующие
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 example.com ESMTP Postfix (Ubuntu)
скажем серверу "привет"
сервер должен нам ответить так :
250-my-new-mailserver
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Теперь пошлём тестовое письмо :
mail from:<raymond@example.com>
Так , всё в порядке , сервер сказал нам:
Письмо адресуем belfigor@example.com
rcpt to:<belfigor@example.com>
И видим , что Postfix разрешил :
Теперь мы готовы отсылать почту:
Postfix тоже соглашается и разрешает нам посылать почту и в итоге выводит нам такие строки:
354 End data with <CR><LF>.<CR><LF>
Напечатаем письмо
Hi belfigor,
I know , that you hacked Microsoft , it's fine :d .
.
Жмём ENTER :
Postfix , сообщает нам ,что получил почту и поставил в очередь под очередью ID:
250 2.0.0 Ok: queued as A9D64379C4
Низкий поклон тебе Postfix и мы выходим
Смотрим логи ,/var/log/mail.log
postfix/smtpd[...]: connect from localhost[127.0.0.1]
postfix/smtpd[...]: 5FF712A6: client=localhost[127.0.0.1]
postfix/cleanup[...]: 5FF712A6: message-id=<...>
postfix/qmgr[...]: 5FF712A6: from=<raymond@example.com>, size=364, nrcpt=1 (queue active)
postfix/pipe[...]: 5FF712A6: to=<belfigor@example.com>, relay=dovecot, ..., status=sent (delivered via dovecot service)
postfix/qmgr[...]: 5FF712A6: removed
postfix/smtpd[...]: disconnect from localhost[127.0.0.1]
Если всё настроено верно то должно быть так !
Но если в логах вы видите ошибки , выполните команду postfix check для проверки правильности настроек и прав доступа на файлы, команда должна отдать пустой результат.
И всё ошибки и какие то отклонения от нормального функционала , можно проглядеть тут :
/var/log/mail.log
/var/log/mail.err
/var/log/mail.warn
/var/log/mail.info
################################################## ########## #####
Идём в нашу домашнию директорию cd /home/vmail/example.com/belfigor
и видим вот такие папки
./cur
./new
./new/1179521979.V801I2bbf7M15352.mailtest
./tmp
Очень удобно работать с папками и директориями с помощью midnight commander
установим его
################################################## ########## #####
Тестируем POP сервер
Сервер отвечает:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
Логинемся:
user belfigor@example.com
Dovecot ответил :
Здорово, теперь посылаем пароль :
Ну вот мы и дома :
Просмотрим наши письма :
Dovecot ответит нам , что у нас есть одно письмо :
Выберем письмо под номером 1:
Dovecot посылает нам письмо :
+OK 474 octets
Return-Path: <raymond@example.com>
X-Original-To: belfigor@example.com
Delivered-To: belfigor@example.com
Received: from example.com (localhost [127.0.0.1])
by ... (Postfix) with ESMTP id 692DF379C7
for <john@example.com>; Fri, 18 May 2007 22:59:31 +0200 (CEST)
Message-Id: <...>
Date: Fri, 18 May 2007 22:59:31 +0200 (CEST)
From: steve@example.com
To: undisclosed-recipients:;
Hi Belfigor,
I know, that you hacked Microsoft , it's fine :d
.
Ну что же , как видим всё работает просто замечательно , и мы с чистой совестью и с радостным чувством , выходим с сервера
quit
+OK Logging out.
Connection closed by foreign host.
Тестировать IMAP у меня как то нет уже желания .
Так что начинаем созвать SSL/TLS , сертификаты доверий
в консоли :
Код:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem \
-keyout /etc/ssl/private/dovecot.pem
В консоли появятся такие строки:
Generating a 1024 bit RSA private key
.........++++++
............................++++++
writing new private key to '/etc/ssl/certs/dovecot.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Во время создания ключа и сертификата , вам зададут несколько вопросов, ответить на них нужно следущим образом , в моём случае это :
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Belgorod
Locality Name (eg, city) []:Belgorod
Organization Name (eg, company) [Internet Widgits Pty Ltd]:workaround.org
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:mailtest.workaround.org
Email Address []

ostmaster@workaround.org
Выставим права на этот сертификат :
chmod o= /etc/ssl/private/dovecot.pem
################################################## ########## #####
Аутификация по SMTP
правим наш main.cf
postconf -e mynetworks=192.168.0.0/24
Настройки SASL
Код:
postconf -e smtpd_sasl_type=dovecot
postconf -e smtpd_sasl_path=private/auth
postconf -e smtpd_sasl_auth_enable=yes
postconf -e smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_a uthenticated,reject_unauth_destination
Проглядеть значение всех параметров можно используя команду
postconf
Создадим ещё один ключ/сертификат ,уже выше указанным методом:
Код:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem \
-keyout /etc/ssl/private/postfix.pem
Ключи и сертификаты , будут лежать у нас в директории
/etc/ssl/certs/dovecot.pem и /etc/ssl/private/dovecot.pem
Выставим права на них
chmod o= /etc/ssl/private/postfix.pem
Укажем Postfix на эти сертификаты
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
SMTP аутификация в Postfix будет отсылаться в plain text и будет проходить в закодированной передаче верительных грамот,
установим эти параметры
PHP код:
postconf -e smtpd_use_tls=yes
postconf -e smtpd_tls_auth_only=yes
__________________________________________________ _____________
Переходим к настройке AMaViS
Фильтрация spam и viruses
В файле /etc/amavis/conf.d/15-content_filter_mode , удаляем комментарии # возле
это сделает наши фитры рабочими
в файле /etc/spamassassin/local.cf добавляем строку [/code]
Этим мы отключаем автоматическое истечения срока распознования спам писем .
Перезагружаем AMaViS
Код:
/etc/init.d/amavis restart
Нужно удостовериться что AMaViS слушает TCP port 10024 :
Код:
netstat -nap | grep 10024
Вывод :
Код:
tcp 0 0 127.0.0.1:10024 0.0.0.0:* LISTEN 12345/amavisd
На наличие ошибок смотрим /var/log/mail.log
Несколько слов о функциях Аmavis ,если например нам послали письмо из интернета , то его сначало получит Postfix на порту 25 , затем если Postfix разрешит это письмо , то он перешлёт его к AMaViS на TCP порт 10024 (SMTP)и если оно соответствует теребывания политики AMaViS , то AMaViS посылает его обратно Postfix на TCP порт 10025 (SMTP)
Для этого выполним следущие команды :
Код:
postconf -e content_filter=smtp-amavis:[127.0.0.1]:10024
postconf -e receive_override_options=no_address_mappings
Так же нужно добавить smtp-amavis службу в файл /etc/postfix/master.cf , в конце файла прописываем
vim /etc/postfix/master.cf
PHP код:
smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20[/quote][quote]
127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks -o local_header_rewrite_clients=
Перегружаем Postfix
Приступаем к настройке Сlamav
Добавим clamav в члены группы amavis
презагружаем демона
/etc/init.d/clamav-daemon restart
Отредактируем файл
vim /etc/amavis/conf.d/50-user
перед "1;"
Прописываем эти строки
Код:
@lookup_sql_dsn = ( ['DBI:mysql:database=mailserver;host=127.0.0.1;port=3306', 'mailuser', 'mailuser2008']);
$sql_select_policy = 'SELECT name FROM virtual_domains WHERE CONCAT("@",name) IN (%k)';
Ребут
/etc/init.d/amavis restart
Теперь посылаем письмо belfigor@example.com , если вы проверите заголовки письма , то вы найдёте строки добавленные Amavis
X-Virus-Scanned: Debian amavisd-new at mymailserverX-Spam-Score: 0X-Spam-Level:X-Spam-Status: No, score=0 tagged_above=-9999 required=6.31 tests=[none]
Теперь все входящие письма будут проверяться на спам и вирусы
Попробуем отослать нашему юзеру спам письмо
sendmail belfigor@example.com < /usr/share/doc/spamassassin/examples/sample-spam.txt
В /var/log/mail.log мы увидем строки прописынные Amavis
amavis[13001]: (13001-02) Passed SPAM, <...> -> <john@example.com>, ...
Выставим права на файл :
Код:
chmod o= /etc/amavis/conf.d/50-user
################################################## ###############
Ну думаю на этом я пока и остановлюсь , значит заводить новых юзеров можно , не посредственно в mysql
PHP код:
mysql>
INSERT INTO virtual_users (id, domain_id, user, password)
VALUES (1, 1, 'новый юзер', MD5('пароль юзера'));
Или через phpMyAdmin , я выбрал скрип написынный на php mail_control.php очень лёгкий и удобный , можно легко и быстро создавать домены и юзеров .
Теперь Белку (squirrelmail) я не люблю , и просто заюзал Mozilla Thunderbird , а для Веб интерфейса пожно использовать roundcube , UebiMiau и ещё много других разных клиентов можно найти в инетерете .
От себя хочу сказать , что это не полный перевод , если кто желает подробно вникнуть с суть дела , то добро пожаловать сюда
http://workaround.org/articles/ispmail-etch/ , для гуру и опытных почтоводов , этот скромный мануал думаю не пригодиться , а вот новичкам с самый раз , свои конфиги я выкладывать не буду , дабы не было банального копипаста , поверте он не даёт ничего хорошо , уже лучше поседеть суток так двое , трое и самому понять работу данного почтового сервера ! имхо
По данном мануалу , почтовый сервер был поднят и настроен 5 раз , ошибок не наблюдалось , багов пока тоже . Одновременно на другом сервера заюзал связку
Postfix, Courier, MySQL And SquirrelMail (Ubuntu 8.04 LTS) , опять же имхо , но
Postfix+Dovecot+Mysql+AMaViS мне понравилась больше, хотя у каждой связки есть свои приемушества !
Желаю успехов на поднятии и настройки почтовых серверов , с уважением
Belfigor .
источник
http://workaround.org/articles/ispmail-etch/