2000 Date: Thu, 30 Apr 92 18:50:59 CET Message-Id: <528@sm5ncz.ampr.org> From: sm5ncz@sm5ncz.ampr.org (Björn Karlsson, Vikbolandet.JO88FH.E.SWE.EU) Reply-To: sm5ncz@sm5ncz.ampr.org To: sm5sxl@sm5sxl Subject: usagent.doc X-Mailer: User Agent V1.3 X-BBS-Msg-Type: P Södertälje Datum Dokumentation Tore Andersson, SM0NCS 91-10-24 User Agent Dokumentation för USAGENT v1.1 Av Tore Andersson SM0NCS. Innehållsförteckning 01 Förord. 3 02 Konfigurationsfilen USAGENT.CFG. 4 02.1 Kommandon i USAGENT.CFG. 4 03 USAGENT.EXE 6 03.1 Kommandon i USAGENT. 7 03.2 Funktionstangenter 04 ALIAS filen. 10 04.1 Multippla adresser. 10 04.2 Wildcards i Alias. 10 05 Den inbyggda "editorn". 11 05.1 Escape sekvenser. 11 1 Förord (BM var det program som skapades som den första mailern till (KA9Q's Net. Programmet var skrivet i C och författaren var (Bdale Garbee. Detta program utvecklades sedan vidare av Mike (Truly under år 1987. På senare år har vi fått Pcelm som har (motsvarande funktioner. Jag började att arbeta med den (ursprungliga BM koden under år 1990 och trots stora (förändringar döpte jag programmet till BMAILER för att behålla (dess ursprung. Den version som ni idag håller i er hand är så (förändrad att det inte går att tala om ursprung längre. Koden (är helt omskriven såväl strukturmässigt som funktionsmässigt. (User Agent är taget från OSI modellen och en användar hjälp- (reda det är precis vad programmet fungerar som. Eftersom de (flesta är vana vid BM vill jag påpeka två viktiga skillnader (mellan detta program och BM. User Agent jobbar inte med en (fil öppen hela tiden utan ser till att stänga arbetsfilen (efter sig då den inte bearbetas. Detta får till följd att (ni slipper de så retfulla lost clusters som BM åstakommer (då datorn slås av med BM aktiv. En annan stor skillnad är (att UA jobbar direkt mot interminnet d vs den lägger upp (mailheaderserna i minnet och går inte ner på disken i onödan (för att titta i mailfilen. Detta har fått till följd att (programmet blivit en bra bit snabbare. Ytterliggare en stor (skillnad är att UA tillåter multippla configurationsfiler. (Du kan således ha en huvudconfigurationsfil USAGENT.CFG och (en annan t ex för någon annan user som finns på ditt system. (Mer om detta i beskrivningn om CFG filen. Jag hoppas att ni kommer att tycka att programmet är värt att använda. Om ni vill att jag skall förändra något hör av er till mig. Med vänlig hälsning: Tore Andersson SM0NCS@SK0MK Silverstigen 8 151 48 Södertälje 2 Konfigurationsfilen Konfigurationsfilen använder USAGENT för att ställa ett antal parametrar. Nedan följer en förklaring för samtliga av kommandona i USAGENT.CFG. Om något kommando är felaktigt eller inte finns talar USAGENT om det och avbryter exekveringen. Konfigurationsfilens namn och/eller path kan ändras genom att använda DOS kommandot set UACFG=path\namn. UA läser då av omgivningen och använder den path och namn som du angett. Som beskrevs ovan så går det att använda flera konfigurationsfiler. Detta görs helt enkelt på så sätt att ni döper konfigurationsfilen efter den mailarea i vilken den skall användas. T ex om ni vill ha en särskild konfigurationsfil för spezial arean så döper ni en fil till spezial.cfg. I stort sätt alla kommandon går att använda i annan konfigfil än usagent.cfg. De som är undantagna och endast kan användas i usagent.cfg anges med en * i texten nedan. Dock behöver ni inte vara oroliga för att programmet hoppar ur om ni skrivit ett otillåtet eller felaktigt kommando i en area konfigfil. UA ignorerar helt enkelt bara det felaktiga kommandot. Den fil som alltid utgås ifrån är den konfigfil som ni startar upp med default usagent.cfg). Med detta menas att kommandon som inte anges i en konfigfil har de värden som ni angett i usagent.cfg. T ex om ni angett bid i usagent.cfg till _NCS386 och i spezial.cfg till _NCSSPEZ och därefter byter till en area med konfigurationsfil där bid inte finns angiven så används bid _NCS386. Dessutom gäller att om ingen konfigfil för en area finns så används uppstarts konfigurationsfilen. Kommandon i Konfigurationsfilerna alias: Syntax Här talar du om för USAGENT var alias filen ligger och dessutom vad du vill att den skall heta. Därför skall förutom pathen till filen även filnamnet anges. Default: \alias på aktuell drive. backround: Syntax Ställer bakrundsfärgen i programmet. Se exemplet på konfigfil för vad integer står för. bid: Syntax Detta är ett nytt option i och med version 1.1. Det tillåter dig att ställa ett eget specialbid. Anledningen till detta är att om man kör två maskiner finns det viss risk för att biden krockar dvs man skickar brev med samma bid inom en viss tidsperiod. Någonstans påvägen rejectas sedan brevet pga att biden sparats i någon BBS. Den resulterande BIDEN blir brevnr_dittbidnamn. edit: Syntax I USAGENT finns det möjligheter att gå in i en editor för att editera dina brev och det är den här parametern som styr vilken editor som skall användas. För att en editor skall kunna användas måste den kunna ta en fil som parameter vid uppstart. Mailern ropar nämligen på editorn med filnamnet som argument dvs t ex ED UAXXX.TXT. Om editorn inte accepterar detta fungerar det inte. Default: ingen editor. endtext: Syntax Om ni vill ha en signatur i slutet av breven anger ni vilken fil som skall inkluderas. Om angiven läggs den i slutet av alla brev skrivna av "user". Default: ingen endtext exclude: Syntax * Möjlighet att få UA att rejecta alla brev från excludedcall. Om brev inkommer från excludedcall dödas brevet och brevet skickas tillbaka till excludedcall med orsak infogat i brevet. Vill du excluda mer än en station är det bara att upprepa kommandot i cfg filen. En lista läggs upp i internminnet. Default: inga exludade calls. foreground: Syntax Ställer förgrundsfärgen i programmet. Se exempel på konfigurationsfil om vad integer står för. fullname: Syntax Vad du skriver efter detta kommando kommer USAGENT att använda sig av när den skapar huvudet i breven enligt RFC-822 standarden. Texten som anges efter kommandot används under rubriken from: xxxxx fullname) i brevhuvudet. folder: Syntax Talar om för programmet vilken path den skall använda när den sparar ett brev med wm eller w kommandot när bara ett filnamn anges i kommandot. Se också mbox. gate: Syntax Använd denna funktion om ni vill att alla brev som ni skriver skall addresseras till gatewaystation. UA addresserar om era brev så att gatewaystation alltid blir den station som först får brevet. T ex om gate är angett till sk0mk.bbs och ni skriver ett brev till sp sm0ies@sm0ies så ändras addressen till sm0ies%sm0ies@sk0mk.bbs. Observera att ALLT omadresseras dvs även när du gör reply på ett brev. Det är det som är vitsen med kommandot. Funktionen kan vara bra att använda bland annat då två datorer används 2000 och man vill att alla brev skall gå från innerdatorn till ytterdatorn och därmed slippa ha innerdatorn att jobba mot radioapparaterna. host: Syntax Anger hostcallet för den station som använder USAGENT. T ex sm0ncs.ampr.org. mail: Syntax Här talar du om vilken path du har till mailbiblioteket. Default: \net\spool\mail på den aktuella driven. maxlet: Syntax * Max antal brev som mailern accepterar i en mailarean. Observera att varje brev tar ett visst mått av minne som allokeras vid uppstart av programmet. Default: 100 mbox: Syntax Den här pathen och filnamnet används av kommandot wm i det fall att användaren inte angett ett filnamn. Skillnaden mellan path och folder är alltså att mbox används då inget filnamn angetts och folder då ingen path angetts. mqueue: Syntax Anger vilket bibliotek du tänker använda för brev som skall läggas i kö för att sändas iväg. Default: \net\spool\mqueue På den aktuella driven. prtlines: Syntax Är en funktion för att behandla printern på ett snällt sätt. Nummer anger hur många rader som skall sändas till printern innan programmet skickar ett formfeed. Ställ prtlines på 0 om du inte vill använda den funktionen. Default: 62 record: Syntax Path och filnamn på en fil för att användas som backup fil av brev. Om record inte anges i USAGENT.CFG kommer backup inte att läggas upp. Med backup menas att alla brev du skriver sparas i path\filnamn. reply: Syntax Anger vad som skall anges i reply_to fältet i brevhuvudet. När motstationen gör reply på brev kommer denna adress att användas för att sända det brevet. Host är det viktiga. Call kan vara i stor sett vad som helst t ex reply@sm0ncs.ampr.org. tzone: Syntax Här anges vilken tidszon du är i. Den används i mailheadern för att tala om när exakt brevet sändes. Observera att USAGENT inte ändrar klockan med hänsyn till tidszonen angiven utan tidszonen skall anges efter vilken tidszon klockan i datorn går. Default: GMT user: Syntax Anger vilken mailarea som skall användas default. Vid startup ställer sig mailern i denna mailarea. Kan sedan internt ändras med kommandot n. Exempel på en konfigurationsfil: # i början på en rad gör att raden skippas. gate sk0mk.bbs host sm0ncs.ampr.org user sm0ncs edit c:\editors\ed.exe fullname Tore Andersson, JO89TE, #SDT.SWE.EU reply sm0ncs@sm0ncs.ampr.org maxlet 100 mbox c:\net\spool\mail\backup.txt record c:\net\spool\sm0ncs.out mqueue c:\net\spool\mqueue prtlines 62 tzone CET alias \net\alias mqueue \net\spool\mqueue mail \net\spool\mail folder \net\spool #exclude sm0xxx #exclude sm0zzz bid _NCS386 endtext c:\bm\bmlev\inc.txt # New color option 910911 # Black = 0 # Blue = 1 # Green = 2 # Cyan = 3 # Red = 4 # Magneta = 5 # Brown = 6 # Grey = 7 backround 7 foreground 0 3.1 Kommandon i USAGENT Det som är option anges med [] och kan alltså utelämnas. bounce: Syntax Kommandot används för att skicka en exakt kopia på ett brev till en annan adressat. Inget nytt brevhuvud skapas. Brevet skickas i det skick som det kom fram till brevlådan i. Om brevnummer utelämnas så gör UA bounce på det brev som är aktuellt brev. delete: Syntax Används för att radera brev i den aktuella mailarean. Flera brev kan raderas samtidigt. T ex d 1 2 3 4 raderar breven 1, 2, 3 och 4. forward: Syntax Kommandot påminner om bounce. Skillnaden ligger i att forward inte gör en exakt kopia utav brevet utan istället lägger till en egen header till kopian. Ett misstag som lätt kan inträffa är att man gör bounce på ett brev för att någon annan skall läsa det. Denne gör sedan reply på det, ämnat till dig. Istället för att replyet går till dig så går det till den ursprungliga avsändaren. Forward rekommendera därför i sådana här fall. Bounce kan vara bra om ett brev hamnat fel. headers: Syntax Visar mailhuvuden i oförändrat skick, dvs om du raderat brev så finns dessa kvar. kill: Syntax Raderar ett brev som ligger i kö för att sändas. Om brevet är låst av smtp t ex genom att net håller på att sända iväg det så talar programmet om detta. Användaren får då frågan om han vill ignorera detta. Om det ignoreras finns risken att det andra programmet dyker. Det hela beror på hur det andra programmet hanterar en sådan situation. UA dyker inte. list: Syntax Listar de brev som ligger i kö för att sändas iväg. Ett L framför brevet talar om att någon applikation har låst brevet. notes: Syntax Används för att ändra mailarea eller för att lista vilka mailareor som finns i mail biblioteket. Om notefil utelämnas så listar programmet vilka areor som finns tillgängliga. Den aktuella mailarean uppdateras, raderade brev försvinner etc. print: Syntax

Skriver ut ett brev på skrivaren. Det här kommandot använder sig av det antal som finns specificerad av prtlines. Efter det antalet överskridits skickas ett formfeed till printern. Ett formfeed skickas även när printern är färdig. Om msglist utlämnas så printar UA det aktuella brevet. Flera brev kan printas på en gång. quit: Syntax Avsluta USAGENT. Uppdateringar sker, raderade brev försvinner etc. reply: Syntax Svara på ett brev. Programmet läser i headern och tar adressen därifrån. Ifall det inte finns någon reply adress i brevhuvudet så talar programmet om det och aborterar sändandet av svaret. Om brevnummer utelämnas antar mailern att det är det aktuella brevet som skall besvaras. En split screen funktion finns. Det brev som besvaras visas på en egen skärm och kan scrollas med piltangenterna upp och ner. reply include: Syntax Som ovan men inkludera det gamla brevet i svaret. Det gamla brevet markeras med ett > framför varje ny rad. send: Syntax Sänd ett brev till någon eller några. Flera users kan anges i samma kommandot t ex sp lelle ncs mk sänder ett brev till lelle, ncs och mk. Type kan utelämnas och blir P privat) som default. transfer: Syntax Omadressera ett brev som ligger i kö för sändning. Programmet känner av om brevet är låst. Ett ignorerande kan få konsekvenser beroende på hur den andra applikationen hanterar situationen. undelete: Syntax Ändrar ett tidigare brev markerat som raderat till ej raderat. Flera brev kan även här anges på en gång. view: Syntax Visar innehållet i ett brev som ligger i kö för sändning. Brevnummer måste anges. Om brevet är låst spelar ingen roll. write: Syntax Skriver ett brev till en fil utan att behålla mail huvudet. Endast texten skrivs i filen. Flera brev kan skrivas samtidigt till samma fil t ex w 1 2 3 4 test.txt. Om path utelämnas används folder om den är specificerad. write default mailbox: Syntax Skriver ett brev till en fil med huvudet på brevet kvar. Även här kan flera brev anges på en gång. Som path anges i första hand den path definierad av folder, i andra hand den path definierad av mbox. Filnamnet kan utelämnas om mbox är specif 1b41 icerad. Då används den pathen och med det filnamnet. exit: Syntax Avslutar körningen utan att förändra mailarean som är aktiv. Raderade brev raderas således inte, lästa brev markeras ej som lästa osv. seven bit: Syntax <7h> Slår tolkningen av de svenska tecknen av och på. De svenska tecknen tolkas i läge on som den sju bitars ascii som är vedertagen i packetvärlden. USAGENT tolkar även den motsatta vägen i läge on. Dvs klammrar blir svenska tecken på skärmen. Programmet skall i läge on tolka på samtliga ställen såväl skärm som printern. Om ni hittar något ställe som inte tolkas hör utav er. Ni har då hittat en bugg. help: Syntax Visar en hjälptext med syntaxen angiven för varje kommando. #: Syntax <#> # står för ett nummer som användaren vill läsa. Om inget nummer anges dvs användaren trycker endast på return så läses det brev som står i tur. Syntax <.> Visa det aktuella brevet. Aktuellt brev markeras med ett > vid listningen med kommandot h. Syncronize: Syntax <$> Uppdatera mailarean. Raderade brev försvinner etc. Syntax Kör ett dos kommando. Tänk på hur mycket minne du har tilldelat USAGENT. Ifall minnet inte räcker till DOS kommandot blir det out of memory. 3.2 Funktionstangenter För att underlätta användningen av programmet har funktionstangenterna programmerats med vissa kommandon. F1 ger i alla lägen hjälp på det aktuella avsnittet av programmet, F2 är i reply, F2 reply include osv... Funktionstangenternas olika funktioner visas i på översta raden på skärmen. 4 Alias filen Aliasfilen heter normalt alias men kan ändras i configfilen med kommandot alias. Naturligtvis kan man använda olika namn eller pather till alias filen i olika program som använder sig av den. T ex att net läser i en fil medans USAGENT läser i en annan. Det finns dock ingen större vits i detta. Ställ istället parametrarna lika på samtliga program som använder sig utav aliasfilen. Aliasfilen består av två saker dels ett aliasnamn och dels den verkliga adressen. När ett brev sänds från USAGENT tittar den i aliasfilen efter en "match" på den angivna adressen. Om den hittar en sådan så ersätter den det angivna aliaset med adressen som finns angiven i aliasfilen. I det fall den inte hittar någon match behålls adressen med tillägget att om en host ej angivits så antar USAGENT att den skall till sin egen hoststation. Om vi i aliasfilen t ex har angivit: test svempa@sm0ies.ampr.org och adresserar ett brev i USAGENT som sp test så kommer brevet att skickas till svempa@sm0ies.ampr.org. 4.1 Multipla adresser I aliasfilen går det dessutom att ha multippla adresser. Om vi exempelvis vill distribuera vissa brev till fler än en person kan vi göra detta med hjälp av aliasfilen. T ex mkinfo sm0ies@sm0ies.ampr.org sm0orb@sm0orb.ampr.org +sm5dq@sm5dq.bbs skickar ett brev adresserat till mkinfo åt samtliga av ovanstående adresser. Värt att notera är också mellanslaget eller taben på raden under mkinfo. Om man vill att adressen skall gå över flera rader måste man ha minst ett mellanslag ett tab på den andra raden. 4.2 Wildcards Sedan version 3.6 supportar UA även ett wildcard nämligen *. Det fungerar precis som det brukar dvs allting efter tecknet skall vara en match. T ex sk6* matchar alla signaler som börjar på sk6. Detta kan användas till att routa brev på ett bekvämt sätt. Antag att vi normalt vill skicka alla brev till sm6 land mot sm0etv.bbs. Vad vi då kan göra är att i alias- filen skriva följande: sm6* sm0etv.bbs sk6* sm0etv.bbs Om vi då adresserar ett brev t ex sp sm6rpz@sk6sa så kommer UA att adressera om brevet till sm6rpz%sk6sa@sm0etv.bbs. Vilket gör att brevet också skickas till sm0etv.bbs adresserat sm6rpz@sk6sa. Naturligtvis kan sm0etv.bbs ersättas med vilken host som helst men endast en host kan anges. T ex sm0etv%sk0mk är inte tillåtet sätt att adressera ett wildcard i aliasfilen. När USAGENT hittar en match så avbryts sökningen i aliasfilen. Detta innebär att om ni vill att några adresser ej skall innefattas i wildcardsaliaset så måste dessa anges före. D vs om vi t ex vill att brev till sm6cvt skall gå till sm6cvt%sk6sa@sk0mk.bbs så anger vi antingen ett alias som ej innefattas av sm6* eller så kan vi ha en alias som ser ut som följer: sm6cvt sm6cvt%sk6sa@sk0mk.bbs sm6* sm0etv.bbs sk6* sm0etv.bbs Tänk på att om ni skriver typ l* så kan vissa alias innefattas av den adressen. Ange därför alltid wildcardsen sist i aliasfilen. Dessutom kanske man vill kunna skicka brev till sig själv typ genom att göra forward på att brev till en speciell mailarea. Tänk på det när ni utformar wildcardsalias. Ett * sm0etv.bbs i alias filen innebär att allt annat än det som finns ovanför i filen skickas till sm0etv.bbs. T ex om man vill skapa en mailarea kallat ua, vad som kan hända är att brev av misstag går iväg till sm0etv.bbs. 5 Den inbyggda editorn Editorn är ännu så länge inte värt namnet editor. Vissa nya funktioner har lags in som t ex att kunna använda coursorn för att editera på den rad man står och wordwrapp. Man balanserar på en skör sträng när man försöker förbättra editorn. Å ena sidan vill man ha ett minnessnålt program och å andra sidan en kraftfull inbyggd editor. Istället rekommendera vi de som är i behov av en bättre editor att använda möjligheten som programmet erbjuder att kalla på en extern editor. 5.1 Escape sekvenser Med escape tecknet ~ nås en del speciella kommandon i editorn dessa listas nedan. Tryck på F1 när ni skriver ett brev så får ni upp ett hjälpfönster med esceapsekvenserna. editor: Syntax <~e> Kalla på den externa editorn. En editor måste finnas definierad detta görs i USAGENT.CFG Se edit. insert message: Syntax <~m msgnum> Lägger in ett brev i texten. Brevnummer måste anges. print: Syntax <~p> Visar brevet på skärmen hur det ser ut fram till kommandot ges. Efteråt kan användaren skriva in mer text. quit: Syntax <~q> Aborterar brevet, brevet sparas ej. read: Syntax <~r filnamn> Läser in en fil i brevet. Namnet på filen måste anges i kommandot. insert ~: Syntax <~~> Gör det möjligt för användaren att använda escape tecknet i sig i texten. Vad som händer är alltså att ett ~ tecken läggs in i texten. . 0