в среде LINUX (почтовый сервер)
Почтовый сервер QMAIL `Для промышленного использования`
Подготовка проекта Qmail к компиляции
Компилирование пакетов checkpassword и ucspi-tcp
Локальная доставка и установка псевдонимов Aliases
Создаём директорию Maildir и "мочим" sendmail
1. Скачиваем три пакета исходников:
2. Распаковываем их, к примеру по пути: /usr/local/src/qmail
т.е. пусть проекты исходников лежат по путям:
/usr/local/src/qmail/checkpassword-0.90/
/usr/local/src/qmail/qmail-1.03/
/usr/local/src/qmail/ucspi-tcp-0.88/
Подготовка проекта Qmail к компиляции
1. Входим в проект qmail: cd /usr/local/src/qmail/qmail-1.03
Изменяем текст в файле error.h, а именно:
Удалить строку: extern int errno;
и добавляем вместо неё:
#include < errno.h>
< errno.h> писать без пробела, т.е. после первой триугольной скобки нет пробела!
Здесь и далее где будут использоваться триугольные скобки (больше, меньше <>), я после первой буду писать пробел, а вы без!!!
2. Для ведения лога исходящих и входящих сообщений:
Находим файл extra.h и редактируем:
Вместо строк #define QUEUE_EXTRA "" и #define QUEUE_EXTRALEN 0, пишим:
#define QUEUE_EXTRA "Tlog\0"
#define QUEUE_EXTRALEN 5
Т.е. в первой строке в ковычках добавляем Tlog\0 и во второй вместо 0 пишим 5
3. Находим файл INSTALL.ids (cd /usr/local/src/qmail/qmail-1.03), редактируем текст:
Удалить всё кроме строк для Linux (должно остаться 9 строк)
Раскоментируем оставщиеся строки (убераем символ #)
В командной строке пишим:
cd /usr/local/src/qmail/qmail-1.03
chmod +755 INSTALL.ids
./INSTALL.ids
В командной строке:
cd /usr/local/src/qmail/qmail-1.03
make setup check
./config-fast ingineer
где ingineer - это имя хоста (имя компьютера), где установлевается QMail.
Компилирование пакетов checkpassword и ucspi-tcp
1. Переходим в проект checkpassword-0.90 (В командной строке: cd /usr/local/src/qmail/checkpassword-0.90)
Находим файл error.h и аналогично с пунктом 1 в подготовке проекта Qmail к компиляции, редактируем:
Удалить строку: extern int errno;
и добавляем вместо неё:
#include < errno.h>
В < errno.h> пробела не нужно.
Далее компилим (в командной строке):
cd /usr/local/src/qmail/checkpassword-0.90
make setup check
2. Переходим в проект ucspi-tcp-0.88 (В командной строке: cd /usr/local/src/qmail/ucspi-tcp-0.88)
Находим файл error.h, аналогично редактируем:
Удалить строку: extern int errno;
и добавляем вместо неё:
#include < errno.h>
В < errno.h> пробела не нужно.
Далее компилим (в командной строке):
cd /usr/local/src/qmail/ucspi-tcp-0.88
make setup check
Локальная доставка и установка псевдонимов Aliases
Всё бъём в командной строке.
1. Локальная доставка:
cp /var/qmail/boot/home /var/qmail/rc
csh -cf '/var/qmail/rc &'
Если команда csh пишит not found, то установить пакет tcsh (из дистрибутива).
2. Псевдонимы Aliases:
cd ~alias
echo adam > .qmail-root
echo bob > .qmail-postmaster
echo bob > .qmail-mailer-daemon
echo bob > .qmail-default
3. теперь редактируем эти файлы (4 шт.: .qmail-root, .qmail-postmaster, .qmail-mailer-daemon, .qmail-default)
В этих файлах удаляем весь текст (adam, bob) и пишим всего одну строку, в каждом из этих файлах:
master
Создаём директорию Maildir и "мочим" sendmail
1. Всё бъём в командной строке.
/var/qmail/bin/maildirmake $HOME/Maildir
echo ./Maildir/ > ~/.qmail
mv /usr/lib/sendmail /usr/lib/sendmail.old
Если ругается, то пофигу.
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
тоже пофигу.
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
2. Редактируем файл rc (/var/qmail)
Заменить: ./Mailbox на ./Maildir
1. Редактируем файлы /var/qmail/control/
пишим в них хост, домен в соответствии с этими файлами.
т.е. в defaultdomain пишим домен (uitv.ru, ящики будут master@uitv.ru), а в остальные, кроме plusdomain, пишим имя хоста и домен:
ingineer # имя хоста
uitv.ru # домен
mail.uitv.ru # второй домен
Если хотите ограничить объём каждого сообщения то создайте файл с именем databytes и в него укажите количество Байт, к примеру 1048576, т.е. 1 МБайт.
2. Идём в каталог /root/
Копируем файл .qmail и директорию Maildir
в каталог /etc/skel/
3. Качаем файл filesqmail.tar.gz в каталог /usr/local/src
Распаковываем его там же. (/usr/local/src/filesqmail)
В каталоге filesqmail будут каталоги etc и var (cd /usr/local/src/filesqmail)
3.1 Копируйте всё, что там есть, в соответствии с путями, к себе в одноименные каталоги. Т.е. всё что в /usr/local/src/filesqmail/etc копируем /etc/
И соответственно всё, что /usr/local/src/filesqmail/var копируем в /var/
3.2 Редактируем файл tcp.smtp (который вы скопировали в пункте 3.1) в каталоге /etc/ в соответствии с вашей локальной сетью, по умолчанию 101.101.
3.3 Редактируем файл qmail в каталоге /etc/rc.d/init.d/ , найдите строку содержащую ingineer и вместо ingineer напишите имя своего хоста.
4. Запускаем ./rerules в каталогe /var/qmail :
/var/qmail/rerules
5. Редактируем /etc/rc.local, в конце добавляем строки:
/usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -u 504 -g 503 0 smtp /var/qmail/bin/qmail-smtpd &
/var/qmail/rc &
Что бы получилось так же как в файле rc.local_demo по пути /etc/rc.d (который вы скопировали в пункте 3.1)
где -u 504 -g 503 это id qmail (командной строке: id qmaild, т.е. uid=504(qmaild) gid=503(nofiles)).
6. Создаём пользователей log и master (служебные пользователи)
adduser log
adduser master
Если хотите, ещё и пароли к ним
passwd log
passwd master
Таким-же образом потом будете создавать свои почтовые ящики.
7. reboot
перегружаемся. Не забудьте открыть порт 25 на интерфейсе в интернет и на интерфейсе локали, 110 только в локаль.
После этого всё должно работать !!!