XMR3 ;ISC-SF/GMB-SMTP Receiver (RFC 822) ;07/01/2002 14:11
Source file <XMR3.m>
| Name | Comments | DBIA/ICR reference |
|---|---|---|
| PRIO | ; "X-PRIORITY:1" (Priority)
|
|
| SUBJ | ; "SUBJECT:"
|
|
| REPL | ; "REPLY-TO:"
|
|
| ENCR | ; "ENCRYPT:"
|
|
| CLOS | ; "X-MM-CLOSED:YES"
|
|
| DATE | ; "DATE:"
|
|
| DATA | ; TEXT / ASSUMES VALID RECIPIENT
; Incoming Variables: ; XMINSTR("FWD BY")="" ; XMZ message number of new message ; XMZFDA FM FDA for new message ; XMZIENS IENS for new message ; $D(XMC("DX")) means Test mode: Messages will not be delivered ; If the msg is from a VA site, the following may be set: ; XMREMID always set if the msg is from a VA site ; $G(XMRXMZ) message number of message we already have. ; Set if new message is a duplicate of one we already have. |
|
| SET | ; Set data into message file
|
|
| HDRFIND(XMZ,XMFIND,XMHDR) | ;
|
|
| NEXT(XMH,XMHDR,XMDATA) | ;
|
|
| TOOLONG() | ;
|
|
| HDRPROC | ; Process header commands
|
|
| EXPI | ; "EXPIRY-DATE:" (vaporize date)
|
|
| CONTINU(XMVBL,XMH,XMHDR) | ;
|
|
| RETU | ; "RETURN-RECEIPT-TO:"
|
|
| PARSE(XMZ,XMREMID,XMSUBJ,XMFROM,XMDATE,XMSENDER,XMENCR,XMZO) | ; Get data for remotely originated message
; This is used by ^XMRENT & ^XMS3 ; XMSUBJ subject ; XMFROM from ; XMDATE date ; XMENCR scramble hint "^" scramble key ; XMREMID message id at site where msg originated (not necessarily at the sending site) ; XMZO original message xmz (to which this msg is a response) |
|
| REMID(X) | ;
|
|
| GETDATA | ;
|
|
| IMPO | ; "IMPORTANCE:HIGH" (Priority)
|
|
| INRE | ; "IN-REPLY-TO:" message at this site
|
|
| MESS | ; "MESSAGE-ID:" at site where message originated
|
|
| SCRUB(X) | ; Strip ctrl chars and leading/trailing blanks
|
|
| REFE | ; "REFERENCES:" (used by some systems, instead of 'in-reply-to')
|
|
| BASK | ; "X-MM-BASKET:" (Delivery Basket)
|
|
| INFO | ; "X-MM-INFO-ONLY:YES"
|
|
| FROM | ; "FROM:"
|
|
| SEND | ; "SENDER:" (Surrogate)
|
|
| SENS | ; "SENSITIVITY:PERSONAL" (Confidential)
|
|
| TYPE | ; "X-MM-TYPE:"
|
| Name | Field # of Occurrence |
|---|---|
| FILE^DIE | SET+5 |
| $$UP^XLFSTR | GETDATA+13, IMPO+1, PRIO+1, SENS+1, HDRFIND+8 |
| DOTRAN^XMC1 | SET+8, SET+9 |
| FWD^XMKP | SET+11 |
| RPOST^XMKP | SET+10 |
| CHECK^XMKPL | SET+12 |
| $$LOCALXMZ^XMR3A | INRE+3 |
| CHEKDUP^XMR3A | SET+1 |
| KILLIT^XMR3A | HDRPROC+5, HDRPROC+13, HDRPROC+21, HDRPROC+25 |
| XMTHIST^XMTDR | DATA+20 |
| $$REMADDR^XMXADDR3 | SET+3, SET+4 |
| ZAPIT^XMXMSGS2 | DATA+17 |
| $$CONVERT^XMXUTIL1 | EXPI+2 |
| $$CTRL^XMXUTIL1 | SCRUB+1 |
| $$ENCODEUP^XMXUTIL1 | SUBJ+3 |
| $$MAXBLANK^XMXUTIL1 | SUBJ+2 |
| $$STRIP^XMXUTIL1 | SCRUB+2 |
| Name | Line Occurrences (* Changed, ! Killed) |
|---|---|
| ^TMP("XMY" | DATA+16!, SET+7 |
| ^TMP("XMY0" | DATA+16! |
| ^XMB(1 - [#4.3] | TOOLONG+2 |
| ^XMB(3.9 - [#3.9] | DATA+20, GETDATA+7*, HDRPROC+2, HDRPROC+19, HDRPROC+32*, INRE+7, INRE+10, HDRFIND+6 |
| ^XMHDR( | NEXT+5 |
| Name | Line Occurrences |
|---|---|
| $$REMID | INRE+2, MESS+1 |
| $$SCRUB | GETDATA+14, GETDATA+15, GETDATA+16, GETDATA+17, NEXT+2, HDRFIND+10, HDRFIND+11, HDRFIND+12, HDRFIND+13 |
| $$TOOLONG | HDRPROC+10 |
| @( | HDRPROC+18, PARSE+15 |
| GETDATA | DATA+12 |
| HDRFIND | PARSE+11 |
| HDRPROC | DATA+13 |
| NEXT | GETDATA+11, HDRFIND+7 |
| SET | DATA+14 |
| Name | Field # of Occurrence |
|---|---|
| ^( | HDRFIND+6 |
| >> | Not killed explicitly |
| * | Changed |
| ! | Killed |
| ~ | Newed |
| Name | Field # of Occurrence |
|---|---|
| >> ER | DATA+12, DATA+13, GETDATA+2, GETDATA+4, GETDATA+19 |
| I | NEXT+1~, NEXT+5*, NEXT+6, NEXT+7, CONTINU+1~, CONTINU+2*, CONTINU+3*, INRE+1~ |
| U | DATA+20, GETDATA+14, GETDATA+15, GETDATA+16, GETDATA+17, HDRPROC+32, TOOLONG+2, ENCR+3, ENCR+4, INRE+5 , INRE+8, INRE+9, INRE+12, SENS+1, HDRFIND+3, HDRFIND+4, HDRFIND+9, HDRFIND+10, HDRFIND+11, HDRFIND+12 , HDRFIND+13 |
| X | SCRUB~, SCRUB+1*, SCRUB+2*, SCRUB+3, REMID~, REMID+1, REMID+4 |
| >> XM2LONG | TOOLONG+4 |
| >> XMC("DX" | DATA+13, DATA+14 |
| XMDATA | NEXT~, NEXT+2*, NEXT+3, NEXT+4, NEXT+6, NEXT+7 |
| XMDATE | DATA+11~, HDRPROC+15*, DATE+1*, DATE+2, PARSE~ |
| XMENCR | DATA+11~, HDRPROC+15*, ENCR+1*, ENCR+3, ENCR+4, PARSE~ |
| XMFIND | PARSE+8~, PARSE+10*, PARSE+11, HDRFIND~, HDRFIND+2, HDRFIND+3*, HDRFIND+4*, HDRFIND+9 |
| XMFROM | DATA+11~, HDRPROC+15*, FROM+1*, FROM+4, SEND+3, PARSE~ |
| XMH | GETDATA+1~, GETDATA+3*, GETDATA+11, GETDATA+13*, GETDATA+14*, GETDATA+15*, GETDATA+16*, GETDATA+17*, GETDATA+18*, NEXT~ , NEXT+3, NEXT+4, NEXT+5, NEXT+6, NEXT+7, HDRPROC+1~, HDRPROC+15*, HDRPROC+16*, HDRPROC+17, HDRPROC+18 , CONTINU~, CONTINU+3, PARSE+8~, PARSE+12*, PARSE+13*, PARSE+14, PARSE+15, HDRFIND+1~, HDRFIND+7, HDRFIND+8* , HDRFIND+9*, HDRFIND+10*, HDRFIND+11*, HDRFIND+12*, HDRFIND+13*, HDRFIND+14* |
| XMHDR | DATA+11~, GETDATA+11, NEXT~, CONTINU~, PARSE+8~, PARSE+11, HDRFIND~, HDRFIND+7 |
| XMHDR( | GETDATA+14*, GETDATA+15*, GETDATA+16*, GETDATA+17*, NEXT+3*, NEXT+4*, NEXT+6*, NEXT+7*, HDRPROC+16, HDRPROC+17 , CONTINU+3, PARSE+13, PARSE+14, HDRFIND+10*, HDRFIND+11*, HDRFIND+12*, HDRFIND+13* |
| XMHDR("TYPE" | TOOLONG+6 |
| XMI | HDRFIND+1~, HDRFIND+5*, HDRFIND+6* |
| XMINCR | DATA+11~, GETDATA+3*, GETDATA+6, GETDATA+8, GETDATA+9*, GETDATA+10* |
| >> XMINST | DATA+20 |
| XMINSTR | DATA+21!, SET+11 |
| XMLIMIT | TOOLONG+1~, TOOLONG+2*, TOOLONG+3, TOOLONG+5 |
| XMLIN | DATA+11~, GETDATA+3*, GETDATA+6*, GETDATA+7, GETDATA+9*, GETDATA+10, HDRPROC+2, HDRPROC+32, TOOLONG+5 |
| XMLOCID | INRE+1~, INRE+2*, INRE+3 |
| XMNVFROM | DATA+21! |
| XMP | HDRPROC+1~, HDRPROC+17*, BASK+1, DATE+1, ENCR+1, EXPI+2, FROM+1, IMPO+1, INRE+2, MESS+1 , PRIO+1, REPL+1, SEND+1, SENS+1, SUBJ+1, TYPE+1, PARSE+8~, PARSE+14* |
| XMREC | GETDATA+4, INRE+1~, INRE+7*, INRE+8, INRE+9, INRE+10*, INRE+11, INRE+12, HDRFIND+1~, HDRFIND+6* , HDRFIND+7, HDRFIND+8, HDRFIND+10, HDRFIND+11, HDRFIND+12, HDRFIND+13 |
| XMREJECT | DATA+11~, DATA+14, DATA+18, HDRPROC+3*, HDRPROC+11*, HDRPROC+22*, HDRPROC+26*, SET+1 |
| XMREMID | DATA+21!, HDRPROC+14*, MESS+1*, MESS+2, SET+1, PARSE~ |
| XMREPLTO | DATA+11~, REPL+1* |
| >> XMRG | GETDATA+4, GETDATA+5*, GETDATA+7, GETDATA+9, GETDATA+11, GETDATA+13, GETDATA+14, GETDATA+15, GETDATA+16, GETDATA+17 |
| XMRINFO | HDRPROC+1~, HDRPROC+23, INRE+12*, PARSE+8~ |
| XMRXMZ | DATA+13, DATA+21! |
| >> XMSEN | DATA+19, GETDATA+2, HDRPROC+4, HDRPROC+12, HDRPROC+20, HDRPROC+24 |
| XMSENDER | DATA+11~, HDRPROC+15*, SEND+1*, SEND+3, SEND+4, PARSE~ |
| >> XMSG | DATA+19*, GETDATA+2*, HDRPROC+4*, HDRPROC+12*, HDRPROC+20*, HDRPROC+24* |
| >> XMSTATE | DATA+15* |
| XMSUBJ | DATA+11~, HDRPROC+15*, SUBJ+1*, SUBJ+2*, SUBJ+3*, SUBJ+4*, SUBJ+5, SUBJ+6*, SUBJ+7, PARSE~ |
| XMVAPOR | EXPI+1~, EXPI+2*, EXPI+3 |
| XMVBL | CONTINU~, CONTINU+3* |
| XMZ | DATA+17, DATA+20, DATA+21!, GETDATA+7, HDRPROC+2, HDRPROC+19, HDRPROC+32, SET+8, SET+10, SET+11 , PARSE~, PARSE+11, HDRFIND~, HDRFIND+6 |
| XMZFDA | DATA+21!, SET+2, PARSE+8~ |
| XMZFDA( | HDRPROC+19, BASK+1*, CLOS+1*, DATE+2*, ENCR+3*, ENCR+4*, EXPI+3*, FROM+4*, IMPO+2*, INFO+1* , INRE+13*, MESS+2*, PRIO+2*, RETU+1*, SEND+4*, SENS+2*, SUBJ+7*, TYPE+1*, SET+3*, SET+4* |
| XMZIENS | DATA+21!, HDRPROC+19, BASK+1, CLOS+1, DATE+2, ENCR+2, ENCR+3, ENCR+4, EXPI+3, FROM+2 , FROM+4, IMPO+1, IMPO+2, INFO+1, INRE+13, MESS+2, PRIO+1, PRIO+2, RETU+1, SEND+4 , SENS+2, SUBJ+5, SUBJ+7, TYPE+1, SET+3, SET+4, PARSE+8~ |
| XMZO | DATA+11~, HDRPROC+15*, INRE+3*, INRE+4, INRE+5*, INRE+6*, INRE+7, INRE+9*, INRE+10, INRE+11* , INRE+13, SET+7, SET+8, SET+9, SET+10, PARSE~ |