Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XMTDL1

XMTDL1.m

Go to the documentation of this file.
  1. XMTDL1 ;ISC-SF/GMB-Deliver local mail to mailbox (cont.) ;04/15/2003 12:53
  1. ;;8.0;MailMan;**18**;Jun 28, 2002
  1. BRODCAST(XMZ,XMZSUBJ,XMZFROM,XMFROM,XMK,XMDEL,XMZPDATE,XMZBSKT,XMACNT) ;
  1. N XMTO,XMREC,XMIA,XMNOFWD
  1. ; Don't forward message if this is FORUM and it was sent to G.EVERYBODY.
  1. S XMNOFWD=$S('$$FORUM^XMXADDRD:0,'$D(^XMB(3.9,XMZ,6,"B","G.EVERYBODY")):0,1:1)
  1. D INIT^XMXADDR
  1. S (XMTO,XMIA)=0
  1. F S XMTO=$O(^XMB(3.7,XMTO)) Q:'XMTO D
  1. . Q:$P($G(^VA(200,XMTO,0)),U,3)=""!($P($G(^(.1)),U,2)="")!($P($G(^(201)),U)="") ; Quit if no access code, or verify code, or primary menu
  1. . Q:$D(^XUSEC("XM NO BROADCASTS",XMTO)) ; Quit if user doesn't want broadcast messages
  1. . S XMACNT=XMACNT+1
  1. . S XMREC=$G(^XMB(3.7,XMTO,0)) Q:XMREC=""
  1. . I $P(XMREC,U,2)=""!XMNOFWD D DELIVER^XMTDL2(XMTO,XMZ,XMZSUBJ,XMZFROM,XMFROM,0,$G(XMK(XMTO)),$G(XMDEL(XMTO),XMZPDATE),XMZBSKT) Q
  1. . N XMERROR,XMFULL,XMFWDADD
  1. . S XMFWDADD=XMTO
  1. . D REMOTE^XMXADDR3(.5,$P(XMREC,U,2),0,"","",.XMFULL)
  1. . I $D(XMERROR) D DELFWD^XMVVITA(XMTO,$P(XMREC,U,2),XMERROR)
  1. . I '$D(XMERROR),$D(^TMP("XMY",$J,XMFULL)) S ^TMP("XMY",$J,XMFULL,"F")=XMTO
  1. . I $P(XMREC,U,8)!$D(XMERROR)!'$D(^TMP("XMY",$J,$G(XMFULL,"?"))) D DELIVER^XMTDL2(XMTO,XMZ,XMZSUBJ,XMZFROM,XMFROM,0,$G(XMK(XMTO)),$G(XMDEL(XMTO),XMZPDATE),XMZBSKT)
  1. S XMTO=0
  1. F S XMTO=$O(^TMP("XMY",$J,XMTO)) Q:+XMTO'=XMTO K ^(XMTO) ; Don't forward to locals
  1. I $$GOTADDR^XMXADDR D
  1. . N XMINSTR
  1. . S XMINSTR("FWD BY")=""
  1. . D FWD^XMKP(.5,XMZ,.XMINSTR)
  1. D CLEANUP^XMXADDR
  1. Q
  1. STATS(XMGROUP,XMQUEUE,XMMCNT,XMRCNT,XMACNT) ;
  1. ; The following global is incremented in STATS^XMKPLQ
  1. ; # messages in queue^# recipients anticipated
  1. N XMSTATS
  1. L +^XMBPOST("QSTATS",XMGROUP,XMQUEUE)
  1. S XMSTATS=^XMBPOST(XMGROUP,XMQUEUE),^(XMQUEUE)=($P(XMSTATS,U)-XMMCNT)_U_($P(XMSTATS,U,2)-XMRCNT)
  1. L -^XMBPOST("QSTATS",XMGROUP,XMQUEUE)
  1. ; The following global is incremented here only.
  1. ; # recipients delivered
  1. L +^XMBPOST("GSTATS",XMGROUP)
  1. S ^(XMGROUP)=$G(^XMBPOST("STATS",XMGROUP))+$G(XMACNT)
  1. L -^XMBPOST("GSTATS",XMGROUP)
  1. Q