UUPC/Extended
Проблема получения почты с провайдера на весь домен по протоколу UUCP и раздачи ее по локальной сети с использованием SMTP/POP3 может быть решена при помощи пакета UUPC/Extended by Kendra Electronics версии 1.13e и выше.
Преимущества такого решения по сравнению с другими заключается в том, что пакет UUPC/Extended имеет собственные демоны POP3 и SMTP. Это позволяет пользователям получать почту (протокол POP3) и отправлять её (протокол SMTP), используя любые стандартные средства (например, PMMail под OS/2, The Bat под Windows). Причём демоны SMTP/POP3 практически не нуждаются в настройке. Необходимо только настроить собственно UUPC.
Особенности пакета
Пакет UUPC/Extended создан и поддерживается для многих платформ на PC: Unix, DOS, Win32, OS/2. Интерфейс пользователя данной системы не радует глаз ползущими по экрану червяками, да и вообще довольно суров, как всё Unix-овое. Но нам не привыкать. Единственное, чего лично мне не хватает - это хоть какой-то индикации прогресса, когда качается почтовый пакет. Но погодите пугаться - давайте разберемся, нам шашечки или ехать? UUPC/Extended имеет много полезных возможностей, таких как забор почты по tcp/ip, гибкие настройки рутинга почты, и другие. О многих фичах я и не знаю, но подозреваю, что UUPC/Extended может всё, что можно придумать в рамках протокола UUCP. И у меня есть на то основания :)Где его берут
Итак, заходим на www.kew.com. Там можно найти несколько версий UUPC/Extended. На сегодня (10.07.1999) имеется версия 1.13f. Если у вас уже есть 1.13e - тоже годится, версии 1.13f и 1.13e для OS/2 ничем не отличаются. В версиях для OS/2 раньше 1.13e был серьезный баг в POP3, поэтому я рекомендую 1.13e и выше. У меня стоит версия 1.13e.Нам понадобятся следующие файлы: upc13f21.zip (536k), upc13f22.zip (180k), upc13f23.zip (172k) - это собственно программы, и upc13bad.zip (230k) - документация и примеры конфигурации в текстовом формате. По вкусу можно добавить ещё upc13bah.zip (175k) - документацию в HTML.
Расположение
Итак, создаем каталоги. Дерево может выглядеть, например, так:
f:\uupc | - корневой каталог UUPC/Ext |
f:\uupc\mail | - служебный каталог для почты |
f:\uupc\spool | - служебный каталог для спулинга почты |
f:\uupc\public | - каталог для общих файлов (я его не использую, но должен быть) |
f:\uupc\log | - каталог log-файлов |
f:\uupc\config | - каталог файлов конфигурации |
f:\uupc\doc | - каталог документации |
f:\uupc\boxes\... | - каталоги для почты пользователей |
Разворачиваем архивы upc13f*.zip в корневой каталог, а документацию - в каталог f:\uupc\doc.
Конфигурация
В архиве документации upc13bad.zip находятся примеры всех необходимых файлов конфигурации. Однако это документация к версии 1.13b, поэтому необходимо во всех файлах конфигурации поправить строки Version=1.13b на Version=1.13f (или 1.13e, как у меня). Настраиваем следующие файлы:- Файл Config\UUPC.RC содержит основные сведения о системе (станции), домене,
сервере провайдера, пути к каталогам и некоторые установки по умолчанию, и имеет
следующий вид:
# *--------------------------------------------* # * UUPC/Ext sample config by Thomas J. Dire * # *--------------------------------------------* Version=1.13e NodeName=mynode Domain=my.domain.ru Mailserv=provider LocalDomain=my.domain.ru postmaster=dmitry # Yes, I am a postmaster :) InModem=ZyxeV32b # My modem options=promiscuousrelay nodisplaycopyright # I don't want to read that long copyright every time :) SpoolDir=f:\uupc\Spool LogDir=f:\uupc\Log MailDir=f:\uupc\Mail PubDir=f:\uupc\Public # *----------------------------------------------* # * The follow global defaults are suggested * # *----------------------------------------------* DOS.Editor=Edit %s OS2.Editor=E %s Win16.Editor=notepad %s Win32.Editor=notepad %s MailExt=SPB # *---------------- End of file -----------------*
- Файлы настроек пользователей типа config\
.rc. На каждого пользователя системы необходимо завести такой файл. В комплекте документации дан пример такого файла под именем personal.rc. Как правило, нужно только скопировать doc\personal.rc как, например, config\dmitry.rc и поменять следующие строки: Mailbox=dmitry Name=Dmitry Tarasov Home=f:\uupc\boxes\dmitry
- В config.sys прописываем расположение uupc.rc и имя пользователя по умолчанию, а также вносим каталог f:\uupc в PATH:
При необходимости частой смены конфигурации можно делать те же установки во время запуска процессов UUPC прямо в *.cmd-файлах.REM --------------- UUPC/Extended settings -------------- SET UUPCSYSRC=f:\uupc\config\uupc.rc SET UUPCUSRRC=dmitry.RC
- Создаем файл Config\HOSTPATH, и указываем там путь, по которому ходит наша почта. Полная версия этого файла есть в каталоге DOC, нам же достаточно одной строчки:
* myprovider
- Берём файл Doc\SYSTEMS, копируем его в каталог Config, и пристально рассматриваем. Нам нужна строка вида:
myprovider Any ZyxeV32b 57600 322-223 vg ogin--ogin--ogin \pMyLogin\p sword:--sword:--sword: \pMyPassword\p
Здесь написано, что нужно звонить провайдеру myprovider в любое время (Any), модемом ZyxelV32b (соответствующий файл ZyxelV32b.mdm нужно также скопировать в \Config), скорость порта 57600, телефон 322-223. Используем протокол vg (об этих буковках лучше спросить у провайдера), далее идет Login-последовательность по типу "принял послал принял послал" через пробел. В случае связи по tcp/ip нужно указать модем tcpip, и скопировать в каталог Сonfig файл Doc\tcpip.mdm.
- Как уже упоминалось, необходимо взять в каталоге DOC файлы *.mdm, соответствующие используемым модемам, и скопировать их в каталог Config. Далее нужно произвести настройку собственно модема - строку инициализации, Dial Prefiх и т.п.
- Файл Config\PERMISSN - конфигурация прав провайдеров на вашей системе. Он имеет вид:
MACHINE=myprovider SENDFILES=yes REQUEST=yes COMMANDS=rmail:rbmail:rcbmail:rzbmail:rnews
- Файл Config\Passwd содержит пароли пользователей. Не удивляйтесь русским комментариям - я переходил на UUPC/Ext с настроенной провайдером досовской Черновской uupc :)
Обратите внимание на поле pop3 - оно означает, что данный пользователь будет забирать почту по протоколу pop3, а не читать её с помощью BMail :)# Для каждого пользователя или системы выделяется одна строка. # Поля разделяются двоеточиями и располагаются в следующем порядке: # # идентификатор пользователя (ответ на приглашение login:) # пароль (ответ на приглашение Password:) # номер пользователя UNIX (не используется) # номер группы пользователя UNIX (не используется) # Настоящее имя; здесь должно быть имя системы, если интерпретатор # команд uucp # Домашний каталог; по умолчанию каталог UUPC conf # Интерпретатор, запускаемый, если прошёл login; по умолчанию # это переменная окружения COMSPEC; # Обязательная секция Postmaster:*:::Mail Administration:: MAILER-DAEMON:*:::Deliver Status Daemon:: uucp:*:::UUCP File Transfer:: # Пользователей добавлять после этой строки... dmitry:MyPassword::pop3:Dmitry Tarasov:f:\uupc\boxes\dmitry:
- В config.sys прописываем расположение uupc.rc и имя пользователя по умолчанию, а также вносим каталог f:\uupc в PATH:
Вспомогательные файлы и запуск пакета
RBMAILОсновная трудность, с которой я столкнулся - это прикручивание RBMAIL. Пакет UUPC/Ext в оригинале не умеет обрабатывать команды сервера провайдера RBMAIL, RCBMAIL, RZBMAIL - то есть не умеет распаковывать почту. Вот что написано по этому поводу в FAQ от Dmitry Zavalishin:
Q: Как к UUPC/Extended 1.12k rbmail пpикpутить?Мне стоило немалых трудов найти rbmail.c -- вы можете взять его здесь: rbmail.zip (32k). Разверните архив в каталог \uupc - он у нас и так в путях.
A: (Boris Karnauch, 2:5020/532)
- Hадо описать в PERMISSIONS для своего хоста как pазpешенные команды rbmail, rcbmail, rzbmail.
- Hадо взять gzip/2. Он доступен на многих BBS, где есть пpогpаммы для OS2.
- Hадо взять rbmail.exe by dz. Впpочем, лучше взять rbmail.c попpавить там одно место (пpи вызове spawvn() нулевым паpаметpом в списке лучше все же ставить какую-то стpоку) и пеpесобpать.
- Hужно сделать два .cmd одного вида: gzip -d |rbmail
.CMD будут называться... пpавильно, rcbmail.cmd и rzbmail.cmd.- Все исполнимые файлы надо положить по пути.
Запуск пакета.
Прежде всего, нам нужно научить UUPC/Ext звонить к провайдеру, забирать и распаковывать почту. Это делает командный файл connect.cmd:
В данном случае прозвон идет в цикле, поскольку сам UUCICO.EXE делает только одну попытку дозвона, возвращая errorlevel 5 при неудаче. UUXQT занимается распаковкой почты. Опции типа -x4 задают степень отладки, то, что вы увидите на экране. Возможно, иногда придется ставить -x20, чтобы разобраться в какой-либо проблеме./* Бобикк, то есть REXX, конечно :) */ do forever '@UUCICO.exe -s myprovider -x1 >nul' if rc<>5 then leave end '@uuxqt -x4'
Имейте в виду - ползущих по экрану цветных червяков не будет :) Все, как в Unix - "на лицо ужасные, добрые внутри" :)
Прозвон к провайдеру можно поставить на шедулер, дабы почта принималась регулярно.
Кроме того, нам надо запустить на постоянную работу демонов pop3 и smtp. Я это делаю с помощью следующего командного файла в StartUp:
Вот, собственно, и всё. Осталось пробовать посылать/принимать почту с помощью почтовых программ-клиентов.detach uusmtpd.exe detach uupopd.exe
Известные проблемы и их решениe, а также некоторые фичи
- Если у вас после загрузки OS/2 демоны uupsmtpd и/или uupopd не запускаются,
либо вылетают, то надо запускать их немного погодя. Похоже, это связано со
стартом tcp/ip сервисов на вашей машине. В этом случае я рекомендую скрипт на Rexx:
/* бобикк */ Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep' /* курим 3 минуты после старта системы */ Call SysSleep 180 '@f:' '@cd f:\uupc' Say Starting POP3 daemon... '@detach uupopd.exe' Say Starting SMTP daemon... '@detach uusmtpd.exe'
- Если UUPC/Ext коннектится к провайдеру нормально, но дальше ничего не
делает, включите у UUCICO отладку -x20, и посмотрите, что происходит.
Если последнее, что вы видите перед бездействием -
M state=K , то причина кроется в описании провайдера в файле SYSTEMS. Здесь либо указан неверный логин или пароль (попробуйте зайти терминалом и убедитесь в этом; не забудьте, логин и пароль чувствительны к регистру!), либо неверные опции протокола. Выясните у провайдера, какие буковки должны описывать протокол (v,g,t и тому подобное). - Как ранее упоминалось, UUPC/Extended умеет работать через tcp/ip. Это очень удобно, особенно если ваш провайдер поддерживает UUPC-логин как с модемного соединения, так и по tcp/ip. У меня, к примеру, забор почты производится напрямик по модему либо по tcp/ip, в зависимости от наличия загруженного InJoy. Выбор способов прозвона производится в REXX-скриптах. Желающие узнать об этом подробнее могут написать мне.
- Не так давно мне пришлось менять провайдера. При этом нужно было, чтобы
несколько месяцев почта принималась с обоих адресов. Оказалось, именно UUPC/Ext
легко справляется с этой проблемой, прич`м в одной конфигурации. Естественно,
необходимо прописать обоих провайдеров в файлах PERMISSN и SYSTEMS, а также
организовать на них прозвон. В файле UUPC.RC целесообразно сразу указать нового
провайдера. Теперь самое интересное: в файле HOSTPATH пишем
Поскольку клиенты передают на наш POP3/SMTP сервер только имя, они будут получать почту с обоих провайдеров одинаково, а отправлять через нового.* NewProvider # Вся почта отправляется через нового провайдера my.old.domain.ru = my.new.domain.ru # В нашей локальной сетке старый домен равен новому
По всем вопросам можно обращаться к авторам UUPC/Extended на www.kew.com (почти шутка :), ну и ко мне, конечно.
Thomas J. Dire (Dmitry Tarasov)
Fido: 2:5020/1873.13
IRC Nick: tom_dire
В Kendra UUPC есть махонькая такая дырка, позволяющая кому угодно пользоваться
её SMTPD в качестве релея (кстати, подобная проблема есть и в обычном sendmail).
Cпособ решения проблемы состоит в том, чтоб закрыть 25-й порт на внешнем (secure)
интерфейсе фаерволом. В результате вы просто исключаете возможность внешнего использования
вашего SMTP.
Правило для добавления в fwfiltrs.cnf:
deny 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 all eq 25 any 0 secure local both
В противном случае кто угодно сможет пользоваться вашим SMTP для ОТСЫЛКИ своей корреспонденции ...
Vladislav V. Gorodynko
IRC Nick: VladG
Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ