Skip to content

netch80/mailnews-ng-sql-perl

Repository files navigation

This product is specific for exUSSR networks. Documentation and comments
are mostly written in Russian. If you can't read Russian, don't use it
until you get fully internationalized version.

Данный продукт представляет собой переписку "с нуля", на основании идей и
принципа работы, но не кода, известного в exUSSR сервера mailnews Антонова -
Вакуленка - Вороного - Гульчука. Код старого mailnews не использовался как
по лицензионным соображениям, так и из-за нежелания применять существующий
код (написанный глубоко вопреки разумным правилам программирования). Автор
глубоко благодарен вышупомянутым авторам исходного продукта за
самостоятельную попытку реализации того, что сейчас дешево и сердито
делается на легких SQL серверах типа MySQL, но на сейчас результат этой
попытки можно оценивать только как большую свалку разложившегося мусора.
И тем более автор благодарен тем, кто в условиях дефицита нормальных
средств сделал весьма работающий и почти не глючащий продукт.

О поддержке и развитии. На сейчас вероятная инсталляционная база неизвестна
даже приблизительно. Код простой, люди все вроде взрослые, специфические
локальные модификации делайте сколько хотите, присылать патчи для включения
в поддерживаемое мной дерево - сколько угодно, но какую-то общую линию
я все же буду пытаться вести;) При наличии запросов из двух источников
будет сделана рассылка для обсуждения.

Для работы mailnews требуются:
1. Рабочий хост. На нем: unix (желательно); perl5 (обязательно; см. ниже
про версии); MTA (вызывается как /usr/sbin/sendmail) с работающей почтой.
Не требуется выделение хоста только под эту задачу - смотрите по нагрузке.
На хосте требуется ряд перловых модулей с CPAN - см. ниже.
2. Ньюссервер. Он может быть на другом хосте - см. конфиг.
3. SQL сервер. Он может быть на другом хосте - см. конфиг и возможности
DBI и его драйверов. Рекомендуется MySQL, потому что 1) на нем
тестировалось, 2) не нужно чего-то мощнее и правильнее, 2) он легок и быстр.

Порядок установки пакета:

1. Определите путь для установки. Это должно быть каталогом - например,
/usr/local/mailnews или /usr/mnews. В нем будут использоваться подкаталоги
bin, lib/mailnews, etc. Далее выбранный каталог будет обозначаться
как $PREFIX.
Путь обязан не содержать шелловых метасимволов (скобок, кавычек, пробелов
и т.п.), иначе пеняйте на себя.

2. Определите путь к перлу. Обязательна версия не ниже 5. Самая ранняя
испытанная была 5.005_03, последняя из долго испытанных - 5.20, последняя из
вообще испытанных - 5.24.

3. Определите пользователя, под которым это будет работать, и его группу.
Ниже везде упомянут пользователь news, хотя это произвольно.

3. Запустите инсталлятор:
make PREFIX=$PREFIX PERL=<путь_к_perl5> install

Инсталлятор поставит:
$PREFIX/lib/mailnews/*.pl - рабочие скрипты,
$PREFIX/bin/* - программы, вызываемые извне - переходники для запуска
перловых рабочих скриптов из $PREFIX/lib/mailnews,
$PREFIX/etc/mn_config.pm - файл конфигурации в исходном варианте.

4. Обеспечьте доступ к SQL серверу.
Настройте базу данных согласно описанию в файле struct в поставке данного
mailnews - таблицы и их содержимое. Установите права доступа.

5. Обеспечьте нахождение и доступность следующих Perl-модулей:

Sys::Syslog
News::NNTPClient
DBI
Unicode::Map8
Unicode::String
MIME::Base64

желателен также I18N::Charset.

Обычно Sys::Syslog поставляется вместе с Perl, остальные - надо ставить
отдельно.
Также обеспечьте DBI драйвер для выбранного SQL сервера (например,
DBD::mysql).

6. Отредактируйте $PREFIX/etc/mn_config.pm с установкой необходимых
параметров. Ряд параметров придется менять обязательно (почтовый адрес
сервера, доменные имена служб, имена и пароли для доступа к SQL серверу),
остальное - по необходимости.

7. Настройте в MTA получение командной почты. Рекомендованный способ для
sendmail:
1) В aliases сделать алиас newsserv: news+newsserv.
2) Если есть алиас news - убрать его и оставить только форвард по умолчанию
в ~news (~news/.forward), иначе форвард news+newsserv не сработает.
3) В ~news сделать .forward+newsserv, в котором написать "|$PREFIX/bin/cmd"
Обеспечить принадлежность форвардов в ~news юзеру news. Это даст запуск
sendmail'ом программы $PREFIX/bin/cmd от пользователя news.

Аналогично сделать алиасы с указанием языка для ответа:
newsserv-en, newsserv-eng => "|$PREFIX/bin/cmd lang=en"
newsserv-ru, newsserv-rus => "|$PREFIX/bin/cmd lang=ru"
newsserv-uk, newsserv-ukr => "|$PREFIX/bin/cmd lang=uk"

8. Настройте отдачу feeder'у потока от ньюссервера. Рекомендованный способ -
помещение feeder'а в inetd.conf и описание innfeed'у ньюссервера
соответствующего приемника именем хоста и номером порта. Допускается
множественность потоков к feeder'у; много feeder'ов могут работать
впараллель, но только с одного источника (на единственность источника
завязано очень многое).

9. Включите в crontab запуск lister'а.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Автор: Valentin Nechayev <[email protected]>

About

Mailnews server rewritten at Perl

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published