Dbmail
Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
[править] DBmail
DBmail - fast and scalable sql based mail services.
DBmail - это группа программ, позволяющих осуществлять хранение и загрузку сообщение из баз данных. На текущий момент mysql postgresql и sqlite могут быть использованы в качестве баз данных. Развитие и поддержка dbmail осуществляется NFG и IC&S, двумя Датскими компаниями, специализирующимися на развитии и поддержке Linux. Разработчиков dbmail ищите в mailinglist.
[править] Преимущества DBmail
Dbmail расширяема настолько, насколько позволяет используемая для хранения писем СУБД. Теоретически, миллионы эл. ящиков (подписчиков) могут регулироваться с помощью DBmail. Например: работа 4-х разных серверов с pop3 daemon, каждый из которых подключен к серверу - единой базе данных (cluster).
DBmail можно администрировать непосредственно через базу данных, используя такие разработки, как PHP/Perl/SQL без непосредственного доступа командной строки (Shell)
Dbmail эффективна в использовании, а также при специфических запросах базы данных по восстановлению информации эл. сообщений. Это намного быстрее, чем анализ системы файлов.
[править] Безопасность
Dbmail не взаимодействует непосредственно с файловой системой или с другими программами в Unix системах, требующих специального разрешения. Dbmail является безопасным, как и база данных, на которой он основан.
DBMail состоит из нескольких компонентов. Нормальный MTA (Postfix, SendMail, QMail, Exim) используется для принятия сообщений. MTA контролирует сообщения с помощью dbmail-smtp, используя - интерфейс-канал или конвейер - a pipe interface или dbmail-lmtpd, используя LMTP (Local Mail Transport Protocol). Эти программы заботятся о доставке сообщения в базу данных. Сообщения могут извлекаться из базы данных с помощью использования dbmail-pop3d, используя the POP3 протокол и dbmail-imapd, используя IMAP4Rev1 протокол.
DBmail недавно был добавлен в репозиторий,и необходимость установки его через overlay отпала. Так,что можете переходить к непосредственно установке Dbmail.
Для простоты работы с overlay я рекомендую установить layman.
emerge layman
echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf
После установки добавте overlay sunrise командой
layman -a sunrise
Переодически незабывайте обнавлять overlay командой
layman -S
Список доступных overlay можно посмотреть командой
layman -L
Список подключенных на данный момент
layman -l
На данный момент мы увидим только
* sunrise [Subversion] (source: http://gentoo-sunrise.org/...)
Более подробно об Overlays можно почитать на Gentoo Overlays [1]
После этого можно приступать к непосредственной установки DBmail
emerge dbmail -av
На текущий момент dbmail 2.2.4 содержит следующие USE флаги
USE="postgres ssl -ldap -mysql -sieve -sqlite3 -static"
Как видно из USE флагов я настраиваю DBMail в связки PostgreSQL.
После установки DBmail и PostgreSQL рекомендую установить файлы конфигурации PostgreSQL, так как по умолчанию их нет
emerge postgresql --config
и произвести запуск PostgreSQL
/etc/init.d/postgresql start
Посмотрим какие существуют базы в системе, для этого надо подключится к Интерактивному Терминалу PostgreSQL
psql -l -U postgres
l - вывести список баз данных и выйти U - имя пользователя базы данных (по-умолчанию: "текущий пользователь системы")
После мы увидим весь список баз данных.Если вы еще не создовали базы данных, то на экране увидете следуюшие:
Список баз данных
Имя | Владелец | Кодировка
-----------+----------+-----------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(записей: 3)
Соединимя с базой данных
psql -U postgres -d template1
d - имя базы данных для подсоединения (по-умолчанию: "имя текущего пользователя в системе")
Когда вы прсоединились к базе, ввидите команду:
template1=# \du
и мы увидим текущий список пользователей
Список пользователей Имя пользователя | ID пользователя | Атрибуты | Группы ------------------+-----------------+---------------------------------+-------- postgres | 1 | superuser: создание базы данных |
Так же если ввести команду \l вы увидете весь список существующих баз данных.
Полный список команд можно посмотреть набрав \?
Зададим существующему пользователю postgres , пароль:
ALTER USER postgres WITH PASSWORD 'Your_Password';
после вы увидете ALTER ROLE (пароль должен быть с ковычками и ;)
и выйдем из базы \q
Можно заметить, что локальные пользователи компьютера, на котором запущен сервер PostgreSQL,могут подключаться к БД под именем любого пользователя без указания пароля. Связано это с тем, что хост localhost по умолчанию является доверенным. Для исправление такого безобразия отредактируйте файл
# vi /var/lib/postgresql/data/pg_hba.conf
Там вы увидете запись trust – она как раз и говорит,что доверенный хост при подключении не требуют пароля. Установите везде md5, и перезапустите PostgreSQL
/etc/init.d/postgresql restart
Теперь при соединеие с БД будет запрашиватся пароль:
psql -U postgres -d template1 Пароль:
После набора, вы сново попадете в Интерактивный Терминал PostgreSQL.
Выйдете из Интерактивного Терминала PostgreSQL.
Для того , что бы удалить созданного пользователя или базы, существуют команды dropdb и dropuser. Синтаксис такой же как и при создание пользователей и баз, только сначало удалейте базу, а потом привязанного к ней пользователя, иначе получите сообщение о невозможности этой операции. Рекомендую создать нового отдельного пользовотеля для администрирование, а postgres использовать в крайнем случаи.
Ниже команда которая создаст нового пользователя fox,который может;
-a Добовлять новых пользователей (по умолчанию используется флаг -A, который запрещает создовать новых пользователей) -d Создовать базы данных (Флаг -D наоборот укажет, что пользователь не сможет создовать базы данных)
# createuser -U postgres -a -d -P -E fox
Теперь создадим пользователем fox. Создали мы его для ежедневной работы.
# createuser -U fox -A -d -P -E dbmail (или как вариант Jack_Sheppard,)
Далее мы создадим еще одного пользовотеля, теперь непосредственно пользователя dbmail.
# createdb -U dbmail www_domain_dbmail comment_Mail_Base_For_My_Domain
-E=UTF8 выбор нужный кодировки, в данном случаи UTF8 (добавить после пользователя)
Ну и триумф. Пользователем dbmail, мы создаем нужную нам БД.
Теперь можно зайти в PSQL и посмотреть , что получилось:
List of roles Role name | Superuser | Create role | Create DB | Connections | Member of -----------+-----------+-------------+-----------+-------------+----------- dbmail | нет | да | да | no limit | fox | да | да | да | no limit | postgres | да | да | да | no limit | (записей: 3)
Список баз данных
Имя | Владелец | Кодировка
--------------------+----------+-----------
domain_dbmail | dbmail | UTF8
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(записей: 4)
из пользователей были добавленны fox и dbmail, причем у dbmail нет прав суперпользователя, и появилась новая база данных domain_dbmail пользователя dbmail
# bunzip /usr/share/doc/dbmail-2.2.4/create_tables.pgsql.bz2 | psql -U dbmail domain_dbmail
HomePage - http://www.dbmail.org/
Official Wiki - http://www.dbmail.org/dokuwiki
DBMail Administrator - http://library.mobrien.com/dbmailadministrator/
