Простой почтовый хостинг с хранилищем писем в БД MySQL. Часть 1. DBMail.
- Подробности
- Просмотров: 3990
Сразу начну с того, что данная конфигурация аж никак не претендует на професиональный хостинг почты с большим количеством пользователей. Зато сгодится на то, чтобы складировать на него системную почту сервера и забирать посредством IMAP (хотя я лично бы не рекомендовал открывать порт IMAP в инет, так как кто его знает) в локальной сети.
Первой частью есть установка DBMail - программы, которая забирает почту и складирует её в базу данных. Данная операция виполняется на сервере с Gentoo Linux, но инструкции, описанные здесь пойдут и на других дистрибутивах с незначительной адаптацией.
Для начала поставим нужные USE-флаги для пакетов. Так как нам надо хранить письма лишь в MySQL, то флаг sqlite с пакета net-mail/dbmail можем смело убирать. Для версии 3.0.2, я бы вообще всё убрал, но можно оставить ssl, если будет желание настроить защищённые соединения с БД и MTA. Для пакета dev-db/libzdb тоже можно оставить лишь mysql, ну и ssl, если очень надо. Остальное необязательно в рамках даной заметки, хотя если желаете запилить что-нибудь этакое, Вам никто не машает.
Итак после установки USE-флагов, устанавливаем dbmail:
# emerge -av dbmail
Ждём, пока соберётся. Далее создаём на сервере MySQL базу данных, скажем с именем dbmail (не оригинально, но всё же). Можно создать ей отдельного юзера, хотя необязательно, это лишь вопрос безопасности. В эту базу создаём таблицы для работы DBMail. В комплекте есть sql-скрипт, который это всё может устроить, нужно просто скормить его консольному MySQL-клиенту.
$ bzcat /usr/share/doc/dbmail-3.0.2/sql/mysql/create_tables.mysql.bz2 | mysql -udbmail -pпароль dbmail
Напоминаю, что это для Gentoo, в других дистрибутивов эти файлы могут лежать и в других местах, и даже могут быть не сжаты в bzip2. Будьте бдительны.
Теперь создадим конфиг. За базу берём идущий в комплекте пример dbmail.conf.dist:
# cp /etc/dbmail/dbmail.conf{.dist,}
Тоесть просто его копируем. Настраиваем под себя. Для нашего случая нужно изменить это.
[DBMAIL]
driver = mysql
authdriver = sql
host = localhost
sqlport = 3306
sqlsocket = /var/run/mysqld/mysqld.sock
user = dbmail
pass = пароль
db = dbmail
table_prefix = dbmail_
Я думаю тут и без комментариев ясно куда прописать свой логин и пароль к БД, а также имя самой БД и префикс таблиц в ней (последние 4 параметра). Можно подшаманить с параметрами bindip, чтобы ограничить доступ, но для этого читаем ман и смотрим пример. Юзателям 64-битки нужно обратить внимание на параметр
library_directory = /usr/lib64/dbmail
который показывает где лежат модуля аутентификации и не всегда с коробки показывает правильно. Я написал путь который работает у меня, если у Вас не работает, проконсультируйтесь с equery по поводу содержащихся в пакете файлов.
Так как файл содержит пароль к БД, не нужно чтобы все его видели, поэтому желательно сменить группу для этого файла на dbmail и выставить права 640. Тогда файл будет видно только для root и dbmail.
Переходим к /etc/conf.d/dbmail. Там есть хитрый массив со списком демонов, которые нужно запускать. Нам нужно лишь lmtpd imapd. Повторюсь: если хотите что-то ещё - не вопрос, экспериментируйте.
DAEMONS="lmtpd imapd"
Далее просто запускаем его
# /etc/init.d/dbmail start
и если надо кидаем в автозапуск
# rc-update add dbmail default
Если процессы dbmail появились, значит всё хорошо (увы initscript не скажет, что что-то не работает, нужно на всякий случай проверть через pgrep). В завершении настройки dbmail нужно добавить пользователей, для которых можно будет доставлять почту.
$ dbmail-users -a user1 -w 12345 -p md5
Данное действие создаст пользователя user1 с паролем 12345 и поместит его в базу захешированным в md5. А можно и такую вещь как whirlpool заюзать. Запустите dbmail-users без параметров, чтобы увидеть варанты хешей, а также прочие опции.
Также можно добавить каждому юзеру можно назначить один или несколько алиасов. Смысл алиаса в том, что почта напрвлена на адрес этого алиаса приходит указаному пользователю (очевидно).
$ dbmail-users -c user1 -s Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Добавляет алиас Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. к пользлователю user1.
На этом настройка dbmail заканчиватеся. Далее нужно прикрутить к DBMail какой-нибудь MTA, например Postfix.