- XMDIRRCV ;(WASH ISC)/CWU-Receive Email Directory ;04/18/2002 07:32
- ;;8.0;MailMan;;Jun 28, 2002
- ; Entry points used by MailMan options (not covered by DBIA):
- ; RECEIVE XMMGR-DIRECTORY-RECV
- RECEIVE ;
- S XMA=0
- ;
- ;Get pointer to domain data is coming from
- S %=$P($P($P(^XMB(3.9,XMZ,0),U,2),"@",2),">")
- S XMDIR1A("CODE")=$S(%="":^XMB("NETNAME"),1:%)
- N DIK S DA=0,DIK="^XMD(4.2997,"
- F S DA=$O(^XMD(4.2997,"E",XMDIR1A("CODE"),DA)) Q:+DA'=DA D ^DIK
- ;
- ;Begin main loop
- ;
- A ;X XMREC
- ;I $D(XMER) G Q:XMER<0
- ;S XMA=XMA+1
- ;S XMTXT(XMA)=XMRG
- ;G A
- Q ; SET UP FOR RECEIVING EMAIL DIRECTORY
- N %,%1,%5,%6
- S XMDIR1=$E(DT,1,5)-200
- S %=.999999
- F S %=$O(^XMB(3.9,XMZ,2,%)) Q:%="" S %1=$G(^XMB(3.9,XMZ,2,%,0)) D
- . Q:%1=""
- . S X("LN")=$P(%1,U),X("FN")=$P(%1,U,2),X("RN")=$P(%1,U,3),X("MC")=$P(%1,U,4),X("EMC")=$P(%1,U,5),X("L")=$P(%1,U,6),X("NET")=$P(%1,U,7)
- . Q:X("LN")=""
- . I $D(^XMD(4.2997,"B",X("LN"))) S %5="" F S %5=$O(^XMD(4.2997,"B",X("LN"),%5)) Q:%5="" I $D(^XMD(4.2997,%5,0)) S %6=^XMD(4.2997,%5,0) Q:X("NET")=$P(%6,U,7)
- . D FILE^XMDIR1A(.X)
- ;
- ;FINISH UP
- ;
- ;Set up for call to MailMan programmer interface
- S XMTEXT="XMTXT(",^TMP("XMY",$J,.5)=""
- S XMTXT(XMA+1)=" "
- S XMTXT(XMA+2)="This message arrived through a server routine."
- ;
- ;Call MailMan programmer interface
- D ^XMD
- D ZAPSERV^XMXMSGS1("S."_XQSOP,XQMSG)
- Q
- XMDIRRCV ;(WASH ISC)/CWU-Receive Email Directory ;04/18/2002 07:32
- +1 ;;8.0;MailMan;;Jun 28, 2002
- +2 ; Entry points used by MailMan options (not covered by DBIA):
- +3 ; RECEIVE XMMGR-DIRECTORY-RECV
- RECEIVE ;
- +1 SET XMA=0
- +2 ;
- +3 ;Get pointer to domain data is coming from
- +4 SET %=$PIECE($PIECE($PIECE(^XMB(3.9,XMZ,0),U,2),"@",2),">")
- +5 SET XMDIR1A("CODE")=$SELECT(%="":^XMB("NETNAME"),1:%)
- +6 NEW DIK
- SET DA=0
- SET DIK="^XMD(4.2997,"
- +7 FOR
- SET DA=$ORDER(^XMD(4.2997,"E",XMDIR1A("CODE"),DA))
- IF +DA'=DA
- QUIT
- DO ^DIK
- +8 ;
- +9 ;Begin main loop
- +10 ;
- A ;X XMREC
- +1 ;I $D(XMER) G Q:XMER<0
- +2 ;S XMA=XMA+1
- +3 ;S XMTXT(XMA)=XMRG
- +4 ;G A
- Q ; SET UP FOR RECEIVING EMAIL DIRECTORY
- +1 NEW %,%1,%5,%6
- +2 SET XMDIR1=$EXTRACT(DT,1,5)-200
- +3 SET %=.999999
- +4 FOR
- SET %=$ORDER(^XMB(3.9,XMZ,2,%))
- IF %=""
- QUIT
- SET %1=$GET(^XMB(3.9,XMZ,2,%,0))
- Begin DoDot:1
- +5 IF %1=""
- QUIT
- +6 SET X("LN")=$PIECE(%1,U)
- SET X("FN")=$PIECE(%1,U,2)
- SET X("RN")=$PIECE(%1,U,3)
- SET X("MC")=$PIECE(%1,U,4)
- SET X("EMC")=$PIECE(%1,U,5)
- SET X("L")=$PIECE(%1,U,6)
- SET X("NET")=$PIECE(%1,U,7)
- +7 IF X("LN")=""
- QUIT
- +8 IF $DATA(^XMD(4.2997,"B",X("LN")))
- SET %5=""
- FOR
- SET %5=$ORDER(^XMD(4.2997,"B",X("LN"),%5))
- IF %5=""
- QUIT
- IF $DATA(^XMD(4.2997,%5,0))
- SET %6=^XMD(4.2997,%5,0)
- IF X("NET")=$PIECE(%6,U,7)
- QUIT
- +9 DO FILE^XMDIR1A(.X)
- End DoDot:1
- +10 ;
- +11 ;FINISH UP
- +12 ;
- +13 ;Set up for call to MailMan programmer interface
- +14 SET XMTEXT="XMTXT("
- SET ^TMP("XMY",$JOB,.5)=""
- +15 SET XMTXT(XMA+1)=" "
- +16 SET XMTXT(XMA+2)="This message arrived through a server routine."
- +17 ;
- +18 ;Call MailMan programmer interface
- +19 DO ^XMD
- +20 DO ZAPSERV^XMXMSGS1("S."_XQSOP,XQMSG)
- +21 QUIT