Почтовый сервер как у провайдера, часть 3: Vexim

Итак, у нас уже установлены exim, clamav и spamassassin. Самое время поставить веб-интерфейс для управления всем этим хозяйством. Называется он Vexim и возможностей предоставляет действительно много. Начнем с того, что у него есть 3 уровня доступа:

  1. Администратор сервера
    Управляет доменами: локальными, алиасами для доменов, доменами, для которых релеится почта. Моздает, назначает постмастеров, меняет пароли, лимиты и т.д.
  2. Администратор домена
    Управляет выделенным ему доменом: создает пользователей, группы, алиасы, прочее.
  3. Пользователь
    Управляет своим почтовым ящиком: меняет пароль, устанавливает спам-баллы, автоответчик, блокировку по заголовкам и т.д.

Всем этим можно управлять из веб-интерфейса. Т.к. мне пришлось его затачивать под именно этот сетап, предлагать его скачивать с официального сайта не буду (да и не будет там серьезных изменений, слишком редко он обновляется). Потому забираем здесь и ложим в тот каталог апача, который мы себе определили для веб-интерфейса. Пробуем запустить и залогиниться администратором сервера (логин siteadmin, пароль 123465). При запуске он начнет ругаться на отсутствующие модули PHP, добавляем:

# cd /usr/ports/databases/pear-DB
# make install clean
# cd /usr/ports/devel/php5-gettext
# make install clean

После этого надо перезапустить веб-сервер. Дальше редактируем файл config/variables.php:

<?php
 /* Информация для логина в SQL */
 require_once "DB.php";
 include_once dirname(__FILE__) . "/i18n.php";

// Тут если надо - вместо localhost пишем адрес sql-сервера
 $sqlserver = "unix+localhost";
 $sqltype = "mysql";

// Название БД
 $sqldb = "vexim";

// Пользователь
 $sqluser = "vexim";

// Пароль
 $sqlpass = "9gp784wy5hg";

 $dsn = "$sqltype://$sqluser:[email protected]$sqlserver/$sqldb";
 $db = DB::connect($dsn);
 if (DB::isError($db)) { die ($db->getMessage()); }
 $db->setFetchMode(DB_FETCHMODE_ASSOC);

 /* Адрес IMAP-сервера */
 $imapquotaserver = "{jared.kiev.ua:143/imap/notls}";

// Проверять ли квоты на IMAP-сервере (если честно - источник малопонятных глюков, включать не рекомендую)
 $imap_to_check_quota = "no";

 /* Разрешать ли логиниться простым юзерам */
 $AllowUserLogin = 1;

 /* Сортировать ли домены и юзеров по алфавиту */
 $alphadomains = 1;
 $alphausers = 1;

 /* Схема шифрования, у нас - md5, не трогаем */
 $cryptscheme = "md5";

 /* Выбор типа ввода доменного имени на стартовой странице: текстовое поле или выпадающий список
 Мне светить все домены пользователям не надо, кому надо - пишите dropdown вместо textbox */
 $domaininput = "textbox";

 /* UID и GID, под которыми будут работать домены. Еще могут ли постмастеры их менять, у меня - нет .
 THE UID AND GID MUST BE NUMERIC! */
 $uid = "1002";
 $gid = "6";
 $postmasteruidgid = "no";

 /* Размещение каталога с почтой для новых доменов. */
 $mailroot = "/var/mail/";

 /* Путь к Mailman, мы рассылки не используем */
 $mailmanroot = "";

 /* Значения по умолчанию для спам-системы, при которых письма будут маркироваться спамом или удаляться */
 $sa_tag = "60";
 $sa_refuse = "500";

 /* Максимальный размер сообщения автоответчика */
 $max_vacation_length = 255;

 /* Приветственное сообщение для новых ящиков */
 $welcome_message = "Welcome, {$_POST['realname']} !\n\nYour new E-mail account is all ready for you.\n\n"
 . "Here are some settings you might find useful:\n\n"
 . "Username: {$_POST['localpart']}@{$_SESSION['domain']}\n"
 . "POP3 server: mail.{$_SESSION['domain']}\n"
 . "SMTP server: mail.{$_SESSION['domain']}\n";

 /* Приветственное сообщение для новых доменов */
 $welcome_newdomain = "Welcome, and thank you for registering your e-mail domain\n"
 . "{$_POST['domain']} with us.\n\nIf you have any questions, please\n"
 . "don't hesitate to ask your account representitive.\n";

?>

На этом настройку Vexim объявляем законченной, теперь можно создавать свои домены и пользователей и взлетать.

Почтовый сервер как у провайдера, часть 1: Exim

Почтовый сервер как у провайдера, часть 2: ClamAV, SpamAssassin, Dovecot

Почтовый сервер как у провайдера, часть 3: Vexim

Почтовый сервер как у провайдера, часть 4: взлетаем

Вам также может понравиться

Об авторе jared

12 комментариев

  1. Исправь ошибку:
    для Exim ты создал базу MAIL, а для Vexim подключаешь VEXIM.
    Думаю, что база должна быть одна.
    Определись, какую оставить…

  2. Спасибо. Статья хорошая.
    Но:
    у меня при добавления нового домена после нажаты кнопки ничего не происходить, появляется белый страница.
    А, как добавлять нового домена без веб-интерфейс?

  3. Я vexim ставил из портов на 7.2, так оно содержит сэмплы конфига экзима, где прописаны запросы к базе и все (почти все?) роутеры, транспорты, часть acl из статьи выше.
    Видимо автор, как и я, воспользовался частью тех конфигов (Например, что касается mime вложений) и это правильно, только тогда надо сначала vexim ставить, а потом уже exim, имхо.

  4. Да, я пользовался и этими конфигами тоже, вообще мой конфиг слеплен из 4-5 найденных в сети со своими модификациями. Потому и vexim я не предлагаю скачивать из портов а выложил немного подправленный.

  5. Делал все по инструкции. Статья не идеальная, но если подходить к ней рассудительно, слепить что-то можно. Возник трабл — не могу подконектиться в админку. Как подключаешься к админке, она просит ввести логин, имя домена и пароль. ну, скажем, логин пароль известны, а домен какой? что я только не перепробова, но подконектиться не могу. помогите пожайлуста

  6. Странно, этот момент всегда проходил без проблем. административный пользователь и домен для него точно есть в базе?

  7. C виду все нормально, так не скажешь. Остается дебагать — смотреть в логи вебсервера и т.д.
    P.S. /usr/ports/databases/pear-DB стоит?

  8. у него в конфиге ошибка с паролем))) поэтому у кого то и не входит)) вместо 123456 в md5 загнан 123465

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *