Пошаговое конфигурирование QMail

в среде LINUX (почтовый сервер)

=> Форум технической поддержки <=

Почтовый сервер QMAIL `Для промышленного использования`


Введение

Подготовка проекта Qmail к компиляции

Копиляция QMail

Компилирование пакетов checkpassword и ucspi-tcp

Локальная доставка и установка псевдонимов Aliases

Создаём директорию Maildir и "мочим" sendmail

Прибамбасы


Введение:

Кому не нравится моё описание идём в qmail-howto

1. Скачиваем три пакета исходников:

Пакет сервера QMail 1.03

Пакет checkpassword-0.90

пакет ucspi-tcp-0.88

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


Копиляция QMail

В командной строке:

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 только в локаль.

После этого всё должно работать !!!

=> Форум технической поддержки <=