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~ |