Poszukując najlepszego programu do obsługi poczty elektronicznej, już kilka lat temu ,,przetestowałwm'' program NUPop. Dopiero jednak niedawno dowiedziałem się o jego ciekawych możliwościach: odczytu poczty z domu (z wykorzystaniem modemu) ale bez potrzeby (czy konieczności) instalowania i uruchamiania protokołu SLIP czy PPP!
Dziś coraz łatwiej (można powiedzieć, że jest to pewnym już standardem)
o dostęp do sieci Internet z domu za pośrednictwem modemu i linii
telefonicznej. Jest też takim standardem używanie protokołów SLIP lub
PPP. Nie wszyscy jednak chcą (lub mogą) z tych udogodnień korzystać.
Pozostaje im wówczas korzystanie w domu z połączenia terminalowego z
serwerem UNIXowym za pośrednictwem programów takich jak
kermit,
procomm, deputy czy dziesiątki
innych. Na serwerze trzeba korzystać z programów pocztowych
pine,
elm czy (o
zgrozo
) z programów
mail/
mailx.
Cóż to jest zatem NUPop?
Jest to program pozwalający wykorzystać komputer PC pracujący pod kontrolą systemu operacyjnego DOS do odczytu i wysyłania poczty elektronicznej.
Co jest potrzebne do wykorzystania programu?
Aby zainstalować oprogramowanie potrzebować będziemy jeszcze pewne dodatkowe informacje:
Zdobyć musimy też oprogramowanie. Jest to niestety dosyć stary już program i nie będzie łatwo znaleźć ,,najnowszą'' jego wersje. Polecam sięgnięcie do źrodeł lub skorzystanie z archiego.
Powinniśmy wybrać wersję odpowiednią do używanego komputera. Można również skorzystać z dostępnej (w języku angielskim) dokumentacji.
Tworzymy kartotekę, w której znajdzie się program i wszystkie pliki konfiguracyjne. Rozpakowywujemy w niej archiwa. Po pierwszym uruchomieniu programu odpowiedzieć będziemy musieli na szereg pytań określających konfigurację systemu i preferencje użytkownika.
Nie będziemy tu omawiali znaczenia poszczególnych pytań (program wyposażony jest w stosunkowo bogaty system wypowiedzi). Poniżej zajmiemy się dodatkowymi czynnościami konfiguracyjnymi niezbędnymi do pracy w sytuacji gdy nie mamy dostępu do sieci - wykorzystujemy modem i konto na komputerze UNIXowym. Musimy przygotować specjalne ,,skrypty'' (pliki w szczegółowy sposób określające czynności jakie powinien wykonać program w naszym imieniu aby automatycznie nawiązać połączenie z serwerem odebrać lub wyekspediować pocztę).
Aby poprawnie przygotować skrypt musimy bardzo dokładnie przyjrzeć się prcedurze nawiązywania połączenia z serwerem. Najlepiej podczas którejś z sesji włączyć opcję zapisywania do pliku i przeanalizować ten plik. W ,,moim'' przypadku wyglądała ona tak:
ATD202784 CARRIER 14400 PROTOCOL: LAP-M COMPRESSION: V.42BIS CONNECT 14400/ARQPołączenie między modemami zostało nawiązane. W tym miejscu należy nacisnąć klawisz Enter dwukrotnie w krótkim odstępie czasu. Pozwala to zorientować się komputerowi, z którym jesteśmy połączeni z jaką szybkościa pracujemy. W każdym przypadku dalsze postępowanie będzie już różne.
Po dwukrotnym naciśnięciu klawisza Enter nawiązaliśmy połączenie.
PAD2002 Version 1.42 rev 4 (c) Netcomm Limited 1987-1990 NRS Lookup Protocol Version 1.0 (C) Netcomm Research Limited 1988-1990 DFN-PAD>Po wybraniu numeru uzyskuję połączenie z węzłem sieci X.25, który pozwala na uzyskanie połączenia z jednym z wybranychj komputerów sieci WASK po wydaniu polecenia call xxxx, gdzie xxxx to numer komputera. Aby uzyskać połączenie z komputerem ldhpux.immt.pwr.wroc.pl należy podac numer2772081.
DFN-PAD>call 2772081 Calling. Accepted. Trying 156.17.8.1 ... Open Witamy z Zakladzie Dynamiki login:W tym miejscu należy się przedstawić:
login: myszka Password:A tu podać hasło (nie będzie ono wyświetlane):
Password: Please wait...checking for disk quotas You have mail. TERM = (vt100)System prosi o potwierdzenie typu terminala, proponując jako wartość domyślną vt100; naciskamy tylko Enter
(hp)[1024]myszka>Pojawia się ,,prompt'' znak zachęty - proces nawiązywania połączenia możemy uznać za zakończony.
,,Skrypt'' (a właściwie dwa), które będziemy przygotowywali mają zachowywać się tak jak człowiek przed klawiaturą. Pierwszy z nich powinien obejmować wszystkie te czynności, które muszą być wykonane, aby nawiązać połączenie z systemem. Drugi czynności pozwalające nawiązać połączenie TCP/IP ze wskazanym portem serwera poczty/POP.
Pierwszy z nich może wyglądać tak (linie rozpoczynające się od znaku gwiazdki ,,*'' traktowane są jak komentarze):
* * ,,Restart'' modemu * modeminit stext "~ATX3&C1&D2M0S37=11N1&K3\\K5&Q5|" * * komenda stext wysyła zadeklarowany ciąg znaków "do modemu" * znak ~ (tylda) nakazuje odczekać 1 sekundę przed rozpoczęciem * wysyłania * znak | (pionowa kreska) oznacza wysłanie znaku końca linii * waitstring "OK" * * komenda waitstring wskazuje na tekst odpowiedzi, którą * powinniśmy uzyskać, żeby móc kontynuować * stext "~ATS36=7S37=11S38=1S46=138S48=7|" waitstring "OK" * * Powyższe ciągi znaków zainicjowały używany przeze mnie modem * * Teraz trzeba wybrać numer, operacja będzie powtarzana wskazaną * liczbę razy (w tym przypadku 10) * dial 10 * * Oczekujemy na uzyskanie od modemu odpowiedzi "CONNECT" * każde "delay" oznacza odczekanie 10 sekund * delay delay delay * * Teraz wysyłamy dwa znaki CR, żeby ,,obudzić'' serwer * W odpowiedzi powinniśmy uzyskać ciąg znaków ,,DFN-PAD>'' * repsendwait 10 5 "|~|" "DFN-PAD>" * delay * stext "~call 2772081|" waitstring "login: " * * ,,Wykręciliśmy'' numer komputera i oczekujemy na jego zgłoszenie * stext "~myszka|" waitstring "Password:" stext "~hasło|" * * Przedstawiamy się i musimy podać hasło. Niestety hasło musi być * zapisane ,,odkrytym'' tekstem! * waitstring "(vt100) " stext "~dumb|" * * Następnie komputer odpytuje o typ terminala: odpowiedź ,,dumb'' * ma zapobiec interpretacji wysyłanych sekwencji znaków * waitstring "myszka>" * * Odpowiedź ,,myszka>'' jest (w moim przypadku) standardowym * znakiem ,,zachęty'' (prompt) - możemy uznać, że połączenie * zostało nawiązane
Drugi skrypt jest już bardzo prosty: zawiera komendę jaką należy wydać, żeby nawiązać połączenie ze wskazanym portem serwera. W przypadku komputera UNIXowego będzie to komenda telnet. Skrypt wygląda tak:
* * Nawiązanie połączenia z komputerem (%n oznacza nazwę serwera, * %p - numer portu) * Korzystamy ze ,,standardowego'' programu telnet - nawiązanie * połączenia sygnalizowane jest informacją ,,escape character is ^]'' * stext "~telnet %n %p|" * waitstring "is '^]'." *
I sprawa załatwiona! Zwracam uwagę, że nie należy ,,niewolniczo'' kopiować powyższych skryptów. Należy dokładnie przyjrzeć się kolejności wykonywanych czynności i przetworzyć je na kilka prostych komend. Język używany przez program jest nieco bardziej rozbudowany - pozwala nawet na warunkowe wykonywanie komend.