[613] | 1 | XMS2 ;ISC-SF/GMB-SMTP Send (non-standard) ;04/25/2002 14:14
|
---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
| 3 | NONSTD(XMNETNAM,XMZ,XMZREC,XMRZ,XMRSET) ; Non-Standard commands,
|
---|
| 4 | ; used only when communicating with other MailMan sites.
|
---|
| 5 | I $O(^XMB(3.9,XMZ,2005,0)),XMC("MAILMAN")>7 D Q:ER
|
---|
| 6 | . N XMBLOBER ; Send other Body parts
|
---|
| 7 | . S XMBLOBER=0
|
---|
| 8 | . D ^XMS0BLOB
|
---|
| 9 | . I XMBLOBER S ER=1,ER("NONFATAL")=1
|
---|
| 10 | D MESSID(XMNETNAM,XMZ,.XMRZ,.XMRSET) Q:ER!$G(XMRSET)
|
---|
| 11 | I XMC("MAILMAN")<8 D Q:ER
|
---|
| 12 | . D SPECIAL(XMZREC) Q:ER
|
---|
| 13 | E D Q:ER
|
---|
| 14 | . D LINES Q:ER!$G(XMRSET)
|
---|
| 15 | Q
|
---|
| 16 | MESSID(XMNETNAM,XMZ,XMRZ,XMRSET) ;
|
---|
| 17 | ; This is a head's up on which message is being sent, and allows the
|
---|
| 18 | ; receiving site to say, "don't bother, I've already received it long
|
---|
| 19 | ; ago and it's already been purged." or "I've already got it, so don't
|
---|
| 20 | ; bother sending the text again, but maybe you've got some new
|
---|
| 21 | ; recipients for me."
|
---|
| 22 | ; Send: "MESS ID:654321@LOCAL.MED.VA.GOV"
|
---|
| 23 | ; Recv: "250 OK"
|
---|
| 24 | ; or: "RSET :21212@REMOTE.MED.VA.GOV:Duplicate purged"
|
---|
| 25 | ; or: "RSET :21212@REMOTE.MED.VA.GOV:Previously received"
|
---|
| 26 | N XMREMID
|
---|
| 27 | S XMREMID=$$NETID^XMS3(XMZ)
|
---|
| 28 | I XMREMID="" D Q
|
---|
| 29 | . ; *** Maybe the thing to do here is to just assign it a net id
|
---|
| 30 | . ; *** and go on our merry way.
|
---|
| 31 | . D ERTRAN^XMC1(42357) ;Msg transmit aborted - remote msg with no remote msg ID
|
---|
| 32 | . S ER("NONFATAL")=1
|
---|
| 33 | . D DOTRAN^XMC1("")
|
---|
| 34 | . N XMPARM,XMINSTR
|
---|
| 35 | . S XMINSTR("FROM")="POSTMASTER"
|
---|
| 36 | . S XMPARM(1)=XMZ
|
---|
| 37 | . D TASKBULL^XMXBULL(.5,"XM SEND ERR REMOTE MSG ID",.XMPARM,"",.5,.XMINSTR)
|
---|
| 38 | S XMSG="MESS ID:"_XMREMID X XMSEN Q:ER
|
---|
| 39 | X XMREC Q:ER
|
---|
| 40 | I $E(XMRG,1,4)="RSET" S XMRSET=1,XMRZ=$P(XMRG,":",2) Q
|
---|
| 41 | Q
|
---|
| 42 | LINES ; If message is at least 1000 lines, and it's not a PackMan message,
|
---|
| 43 | ; let the other site know. If the other site says it's too many lines,
|
---|
| 44 | ; we don't have to bother with the text.
|
---|
| 45 | N XMLINES
|
---|
| 46 | S XMLINES=$$LINE^XMXUTIL2(XMZ) Q:XMLINES<1000
|
---|
| 47 | Q:$$PAKMAN^XMXSEC1(XMZ)
|
---|
| 48 | S XMSG="MESS LINES:"_XMLINES X XMSEN Q:ER
|
---|
| 49 | X XMREC Q:ER
|
---|
| 50 | I $E(XMRG,1,4)="RSET" S XMRSET=1 Q
|
---|
| 51 | Q
|
---|
| 52 | SPECIAL(XMZREC) ; Special message characteristics
|
---|
| 53 | ;I 'XMC("MAILMAN") D CHEKSPEC(XMINST,XMSITE,XMZ,XMZREC,XMNVFROM) Q
|
---|
| 54 | N I
|
---|
| 55 | S I=7 I $P(XMZREC,U,I)'="" D SPECSEND(I,$P(XMZREC,U,I)) Q:ER
|
---|
| 56 | Q:ER
|
---|
| 57 | F I=5,9,11,12 I "^Y^y^"[(U_$P(XMZREC,U,I)_U) D SPECSEND(I,$P(XMZREC,U,I)) Q:ER
|
---|
| 58 | Q:ER
|
---|
| 59 | Q
|
---|
| 60 | SPECSEND(I,XMVAL) ;
|
---|
| 61 | S XMSG="MESS "_$P("^^^^CONFIRMATION^^TYPE^^CLOSED^^CONFIDENTIAL^INFO",U,I)_":"_XMVAL X XMSEN Q:ER
|
---|
| 62 | X XMREC
|
---|
| 63 | Q
|
---|
| 64 | ; *** The following is not used ***
|
---|
| 65 | CHEKSPEC(XMINST,XMSITE,XMZ,XMZREC,XMNVFROM) ; If special VA-only instructions exist, send msg to user
|
---|
| 66 | N I,XMSPEC
|
---|
| 67 | F I=6,7 I $P(XMZREC,U,I)'="" D SPECSET(I,.XMSPEC)
|
---|
| 68 | F I=5,9,11,12 I "^Y^y^"[(U_$P(XMZREC,U,I)_U) D SPECSET(I,.XMSPEC)
|
---|
| 69 | Q:'$D(XMSPEC)
|
---|
| 70 | N XMTEXT,J,XMINSTR,XMTO,XMIEN
|
---|
| 71 | S XMINSTR("FROM")="POSTMASTER"
|
---|
| 72 | S I=0
|
---|
| 73 | S I=I+1,XMTEXT(I)="Your message to "_XMSITE_","
|
---|
| 74 | S I=I+1,XMTEXT(I)="Subject: "_$P(XMZREC,U,1)_" ["_XMZ_"]"
|
---|
| 75 | S I=I+1,XMTEXT(I)="will not include any special instructions, since that site"
|
---|
| 76 | S I=I+1,XMTEXT(I)="is running a very old MailMan version: "_XMC("MAILMAN")
|
---|
| 77 | S I=I+1,XMTEXT(I)=""
|
---|
| 78 | S I=I+1,XMTEXT(I)="The special instructions to be ignored are:"
|
---|
| 79 | S I=I+1,XMTEXT(I)=""
|
---|
| 80 | S J=""
|
---|
| 81 | F S J=$O(XMSPEC(J)) Q:J="" S I=I+1,XMTEXT(I)=" "_J
|
---|
| 82 | S XMIEN=""
|
---|
| 83 | F S XMIEN=$O(^XMB(3.9,XMZ,1,"AQUEUE",XMINST,XMIEN)) Q:XMIEN="" S XMTO($$SENDER^XMS3(XMZ,XMZREC,XMNVFROM,XMIEN))=""
|
---|
| 84 | D SENDMSG^XMXSEND(.5,"Special Instructions Ignored","XMTEXT",.XMTO,.XMINSTR)
|
---|
| 85 | Q
|
---|
| 86 | SPECSET(I,XMSPEC) ;
|
---|
| 87 | S XMSPEC($P("^^^^CONFIRMATION request^VAPORIZE date^TYPE^^CLOSED status^^CONFIDENTIAL status^INFO status",U,I))=""
|
---|
| 88 | Q
|
---|