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/

Источник — «http://ru.gentoo-wiki.com/Dbmail»
Личные инструменты