YAM jaki jest, każdy widzi - chciałoby się powiedzieć. Można zaryzykować stwierdzenie, że to najpopularniejszy program do odbioru i wysyłki poczty elektronicznej dla systemów AmigaOS/MorphOS. Gwoli wstępu, pierwsza publiczna wersja YAM-a pojawiła się w 1995 roku. W 2000 roku, Marcel Beck zaprzestał dalszego rozwoju programu, ale jednocześnie udostępnił jego kod źródłowy na licencji GPL. Od tamtej pory program jest rozwijany przez grupę programistów. Ostatnia, stabilna wersja programu YAM jest oznaczona numerem 2.6p1 i datowana na dzień 26.09.2010. YAM, oprócz codziennej użyteczności, posiada jeszcze swoje "sekrety", o których mało kto wie. Poniższy artykuł ma na celu przybliżenie tych "tajemnic".
Codzienna praktyka z YAM-em to zasadniczo otwarcie okna z programem, odbiór, czytanie, pisanie i wysyłka poczty elektronicznej. Innymi słowy, na co dzień korzystamy z jego Graficznego Interfejsu Użytkownika (GUI), ale YAM - jak każdy szanujący się program przeznaczony dla AmigaOS - oprócz tego, że posiada łatwo rozpoznawalne GUI, posiada również tzw. port ARexxa oraz - co może zdziwić - argumenty linii poleceń CLI. I właśnie te zagadnienia wzbudziły moje zainteresowanie już jakiś czas temu.
Argumenty YAM-a
Uruchamiamy program z poziomu konsoli CLI, tradycyjnie ze znakiem zapytania, po czym YAM grzecznie wyświetla listę dostępnych poleceń:
Jak widać, do dyspozycji mamy następujące polecenia: USER/K, PASSWORD/K, MAILDIR/K, PREFSFILE/K, NOCHECK/S, HIDE/S, DEBUG/S, MAILTO/K, SUBJECT/K, LETTER/K, ATTACH/M, NOIMGWARNING/S, NOCATALOG/S, NOSPLASHWINDOW/S. Są to opcje startowe YAM-a, które mogą być wykorzystane z poziomu Shella, w skryptach AmigaDOS, ale także jako narzędzia (tooltypy) w ikonce YAM-a. I tak:
USER=<użytkownik> - uruchamia aktywnego użytkownika. W ten sposób pominięta zostaje procedura logowania w przypadku wielu kont użytkowników w programie.
PASSWORD=<hasło> - hasło dla wybranego użytkownika. Pozwala na pominięcie pytania o hasło przy starcie. Wrażliwe na wielkość liter.
MAILDIR=<ścieżka> - ustawia katalog główny dla danego użytkownika.
PREFSFILE=<nazwa> - nazwa pliku z ustawieniami. Z założenia jest to <MAILDIR>/.config
NOCHECK - uruchamia YAM-a bez wymiany korespondencji przy starcie.
HIDE - uruchamia YAM bez otwierania jego ekranu.
DEBUG - pokazuje w okienku CLI dane wymieniane pomiędzy YAM-em i serwerem poczty. Przydatna w razie problemów z połączeniem z serwerem poczty.
MAILTO=<odbiorca> - tworzy nową wiadomość dla danego odbiorcy przy starcie YAM-a. Jako odbiorcę można wpisać nie tylko adres e-mail, ale także imię użyte w książce adresowej YAM-a. Można wpisać wielu odbiorców oddzielonych przecinkami.
SUBJECT=<temat> - pozwala na ustawienie tematu wiadomości (w połączeniu z MAILTO)
LETTER=<nazwa> - plik tekstowy, który chcemy wysłać (w połączeniu z MAILTO).
ATTACH=<nazwa> - załącznik do wiadomości (w połączeniu z MAILTO).
Kilka przykładów do wykorzystania w okienku Shella:
YAM USER Irena PASSWORD afrodyta HIDE
albo
YAM NOCHECK MAILTO "redakcja@ppa.pl, yamm@freelists.org, Recedent" SUBJECT "Raport z błędem" ATTACH "ram:raport.txt"
albo po prostu:
YAM HIDE
Ten ostatni przykład wykorzystuję osobiście do startu YAM-a wraz z systemem. YAM uruchamia się "bezobjawowo", a swoje działanie sygnalizuje tylko poprzez ikonkę stanu poczty.
Wyżej opisane polecenia CLI YAM-a można wykorzystać w różnego rodzaju skryptach, podpinanych do guzików czy to zwykłego menu - czy też kontekstowego. Polecam eksperymenty celem bliższego poznania YAM-a od tej strony.
Jak zapewne zauważyliście, YAM posiada jeszcze trzy inne polecenia: NOIMGWARNING, NOCATALOG, NOSPLASHWINDOW. Nie są one opisane w podręczniku guide YAM-a. Proponuję więc pobawić się w samodzielne testy celem odnalezienia ich użyteczności.
Port ARexxa
Druga, jeszcze silniejsza niż DOS-owa strona YAM-a, to jego port ARexxa. Do dyspozycji jest cała masa różnych poleceń, poniżej uporządkowane wg zadań, do jakich są przeznaczone:
Polecenia związane z MUI (GUI): HELP, HIDE, INFO, QUIT, SCREENTOBACK, SCREENTOFRONT, SHOW
Obsługa książki adresowej: ADDRDELETE, ADDREDIT, ADDRFIND, ADDRGOTO, ADDRINFO, ADDRLOAD, ADDRNEW, ADDRRESOLVE, ADDRSAVE
Operacje na katalogach: FOLDERINFO, GETFOLDERINFO, MAILFILTER, MAILUPDATE, NEWMAILFILE,
Obsługa GUI: APPBUSY, APPNOBUSY, READCLOSE
Wybór wiadomości/katalogów: GETSELECTED, LISTSELECT, SETFOLDER, SETMAIL, SETMAILFILE
Manipulacja wiadomościami: GETMAILINFO, MAILARCHIVE, MAILBOUNCE, MAILCHANGESUBJECT, MAILCOPY, MAILDELETE, MAILEDIT, MAILEXPORT, MAILIMPORT, MAILINFO, MAILMOVE, MAILREAD, MAILREPLY, MAILSTATUS, READINFO, READPRINT, READSAVE, SETFLAG
Obsługa sieci: GETURL, ISONLINE, MAILCHECK, MAILSEND, MAILSENDALL
Interakcje z użytkownikiem: GETCONFIGINFO, REQUEST, REQUESTFOLDER, REQUESTSTRING, USERINFO
Tworzenie nowych wiadomości e-mail: MAILFORWARD, MAILWRITE, WRITEATTACH, WRITEBCC, WRITECC, WRITEEDITOR, WRITEFROM, WRITELETTER, WRITEMAILTO, WRITEOPTIONS, WRITEQUEUE, WRITEREPLYTO, WRITESEND, WRITESUBJECT, WRITETO
Opis tych funkcji wykracza zdecydowanie poza rozmiar artykułu, więc dam proste przykłady wykorzystania tylko kilku z nich.
Ciekawą funkcja jest GETURL. Pozwala ona bowiem na nic innego jak pobieranie plików z sieci na dysk za pomocą protokołu http. Przykład użycia polecenia GETURL w skrypcie ARexxa:
GETURL 'http://www.yam.ch/files/YAM22.lha' 'ram:YAM22.lha'
Przykładowy plik o nazwie YAM22.lha zostanie pobrany przez YAM-a, po czym zapisany w katalogu RAM:. Myśląc o praktycznym zastosowaniu tej funkcji, przychodzą mi do głowy pliki/archiwa o dużej objętości jak np. filmiki na YouTube czy pliki muzyczne. Wystarczy podać adres do pliku i miejsce zapisu na dysku jako argumenty funkcji GETURL, a plik zostanie odpowiednio pobrany i zapisany w miejsce docelowe.
Inna przykładowa funkcja to MAILCHECK, która po prostu odbiera pocztę w ten sam sposób, jak wciśnięcie guzika "Pobierz (Get)", tyle że robi to w tle, bez uruchamiania GUI YAM-a.
W Magellanie, którego wykorzystuję jako zamiennik Workbencha, mam w StartMenu "wpięty" guzik jak niżej:
Function: AmigaDOS run >NIL SAY -a polski -s225 Sprawdzam pocztę! AmigaDOS rx "address YAM 'Mailcheck'"
Dodatkowo powyższy skrypt podpiąłem pod guziki klawiatury. Jednoczesne wciśnięcie kombinacji "control" i "m" (w moim przypadku) wymusza na YAM-ie sprawdzenie poczty "w tle".
Oczywiście w sieci jest sporo skryptów ARexxa napisanych pod kątem YAM-a. Polecam przejrzenie zasobów Aminetu w celu znalezienia jakiejś, być może, "perełki". Ciekawy wydaje mi się pomysł, np. napisania skryptu ARexxa podsyłającego do YAM-a teksty pisane w zewnętrznym edytorze - wszystko w celu zautomatyzowanej wysyłki pod zadany adres. Podpinamy taki skrypt pod menu np. CED-a. Cokolwiek napiszemy w edytorze, po wciśnięciu guzika w jego menu, po prostu automatycznie zostanie wysłane do odbiorcy bez otwierania GUI YAM-a. Takie małe czary-mary.
Dokładniejsze objaśnienia poleceń ARexxa w YAM-ie można znaleźć w pliku YAM_english.guide, zawartym w archiwum z programem. Adres strony domowej programu YAM to: http://www.yam.ch, tam też należy szukać aktualizacji programu.
Życzę ciekawych eksperymentów ze skryptami i poleceniami tak ARexxa, jak i CLI YAM-a. Jak widać, nawet taki (dziarski) staruszek jak YAM ciągle jeszcze pozytywnie zaskakuje.
Artykuł oryginalnie pojawił się w piątym numerze Polskiego Pisma Amigowego.