Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Установка и настройка DBMail. DBMail - это почтовый сервер c MySQL хранилищем писем.


Новые статьи на сайте:

 

Hilik     Настроим все

 http://www.hilik.org.ua/

 

DBMail. Почтовый сервер c MySQL хранилищем писем.

На практике мне приходилось несколько раз сталкиваться с DBMail. Скажу честно, я стараюсь избегать использовать SQL лишний раз, особенно для почты, особенно для хранения писем. Самым правильным методом хранения писем я считаю Maildir. Но! бывают ситуации, когда заказчика просто нет возможности переубедить, а поскольку кушать хочется, приходится делать то, что нужно заказчику.
Вот на этот случай я и пишу статью о DBMail.

DBMail присутствует в портах FreeBSD, оттуда мы его и поставим:

cd /usr/ports/mail/dbmail
make install clean

Ну и вначале, ставший практически для всех портов традиционный диалог настройки опций сборки:


Options for dbmail 2.2.11

[X] MYSQL Build with MySQL support
[ ] POSTGRESQL Build with PostgreSQL support
[ ] SQLITE Build with SQLite support
[ ] SIEVE Build w. support for Sieve mail sorting language
[ ] LDAP Build with support for LDAP authentication

[ OK ] Cancel

После того, как DBMail соберется и установится, нужно создать базу и таблицы. Для этого сначала подключимся к MySQL и создадим базу и пользователя, который будет подключатся к этой базе.

mysql -uroot -p
CREATE DATABASE dbmail;
GRANT ALL ON dbmail.* TO 'dbmail'@'localhost' IDENTIFIED BY 'dbmail-123';

И теперь создадим таблицы:

mysql -uroot -p dbmail </usr/local/share/dbmail/mysql/create_tables.mysql

Теперь можно переходить к настройке DBMail.
Файл настроек /usr/local/etc/dbmail.conf имеет такой вид:

[DBMAIL]
#Будем использовать mysql
driver = mysql
#Авторизовать пользователей через sql
authdriver = sql
#Параметры подключения к MySQL
host = localhost
sqlport = 3306
sqlsocket = /tmp/mysql.sock
user = dbmail
pass = dbmail-123
db = dbmail
table_prefix = dbmail_
encoding = utf8
default_msg_encoding = utf8
#Email постмастера, сюда будут сыпаться уведомления
postmaster = postmaster@hilik.org.ua
sendmail = /usr/sbin/sendmail
#Уровень логирования
TRACE_SYSLOG = 3
TRACE_STDERR = 1
#Работать DBMail будет от nobody
EFFECTIVE_USER = nobody
EFFECTIVE_GROUP = nogroup
#Соединения принимать на всех интерфейсах
BINDIP = *
#Количество одновременных процессов DBMail
NCHILDREN = 2
MAXCHILDREN = 10
MINSPARECHILDREN = 2
MAXSPARECHILDREN = 4
#Максимальное число соединений
MAXCONNECTS = 10000
#Максимальное число ошибок соединения
MAX_ERRORS = 500
#Глобальный таймаут. Применяется ко всем параметрам
#отвечающих за ожидание, если они не были отдельно переопределены
TIMEOUT = 300
#Переопределенный timeout для процедуры Login
login_timeout = 60
#Для ускорения работы отключаем преобразование ip адресов в имена
RESOLVE_IP = no
#Логи
logfile = /var/log/dbmail.log
errorlog = /var/log/dbmail.err
#Директории для pid файла
pid_directory = /var/run
state_directory = /var/run
#Настройки таймаутов
query_time_info = 10
query_time_message = 20
query_time_warning = 30
 
#Настройки протоколов
[SMTP]
 
#По LMTP smtp сервера будут отдавать почту DBMailу
[LMTP]
PORT = 24
 
#POP3 и IMAP - протоколы по которым клиенты забирают почту.
[POP]
PORT = 110
POP_BEFORE_SMTP = no
 
[IMAP]
PORT = 143
TIMEOUT = 4000
IMAP_BEFORE_SMTP = no
 
# end of configuration file

Теперь разрешим запускаться dbmail-imap, dbmail-pop3d и dbmail-lmtp:

echo 'dbmail_imapd_enable="YES"' >> /etc/rc.conf
echo 'dbmail_pop3d_enable="YES"' >> /etc/rc.conf
echo 'dbmail_lmtpd_enable="YES"' >> /etc/rc.conf

И соответственно запустим.

/usr/local/etc/rc.d/dbmail-imapd start
/usr/local/etc/rc.d/dbmail-pop3d start
/usr/local/etc/rc.d/dbmail-lmtpd start

И теперь перейдем к добавлению пользователей.
Добавляются пользователи так:

dbmail-users -a sh@hilik.org.ua -w cthutq-123

и увидим такой ответ:

Adding INBOX for new user... ok.
Done
sh@hilik.org.ua:x:4:0:0.00:0.00:

Добавить еще один адрес к почтовому ящику, ну то есть сделать alias, можно командой:

dbmail-users -c sh@hilik.org.ua -s hilik@hilik.org.ua

То есть, к почтовому ящику sh@hilik.org.ua, добавляем алиас hilik@hilik.org.ua.

На этом настройка самого DBMail закончена. Осталось прикрутить его к почтовому серверу Exim или Postfix.

 

 

 

 Буду рад комментариям, постараюсь ответить на вопросы. Заходите на сайт http://www.hilik.org.ua/
 


В избранное