| 1 | XMGAPI3 ;WASH ISC/REW/LH-Deliver Broadcast Msg & Mark for Vaporization ;04/17/2002  08:59
 | 
|---|
| 2 |  ;;8.0;MailMan;;Jun 28, 2002
 | 
|---|
| 3 |  ; Entry points used by MailMan options (not covered by DBIA):
 | 
|---|
| 4 |  ; ENT    XMR-BROADCAST-VA-WIDE
 | 
|---|
| 5 |  ; ENT    XMYB-BROADCAST-VA-WIDE
 | 
|---|
| 6 | ENT(XMTO) ; Meant to be invoked by a server.  Delivers a message
 | 
|---|
| 7 |  ; either to all users or to a specific user.
 | 
|---|
| 8 |  ; The message must have been sent by the POSTMASTER@FORUM.VA.GOV.
 | 
|---|
| 9 |  ; The AUTOMATIC DELETE DATE for this message is set for each user
 | 
|---|
| 10 |  ; to be in 7 days; 30 days if sent to a specific user.
 | 
|---|
| 11 |  ; The message is made 'information only' and 'closed'.
 | 
|---|
| 12 |  ; XMTO   *=to all users
 | 
|---|
| 13 |  ;        DUZ=to only one person -- typically .6 to route to SHARED,MAIL
 | 
|---|
| 14 |  ; Variables set in the server invoker:
 | 
|---|
| 15 |  ; XQSOP  Server basket name
 | 
|---|
| 16 |  ; XQMSG  Message number
 | 
|---|
| 17 |  ; XMFROM Who sent the message
 | 
|---|
| 18 |  N XMDUZ,XMKN
 | 
|---|
| 19 |  S (XMDUZ,DUZ)=.5
 | 
|---|
| 20 |  S XMKN="S."_XQSOP
 | 
|---|
| 21 |  I $P(XMFROM,"@")'["POSTMASTER"!($P(XMFROM,"@",2)'["FORUM.") D
 | 
|---|
| 22 |  . D ERR1(XMDUZ,XMKN,XMFROM)
 | 
|---|
| 23 |  E  D
 | 
|---|
| 24 |  . D SEND(XMDUZ,XMKN,XQMSG,XMTO,XMFROM)
 | 
|---|
| 25 |  D CLEANUP(XMKN,XQMSG)
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 | SEND(XMDUZ,XMKN,XMZ,XMTO,XMFROM) ;
 | 
|---|
| 28 |  K XMERR,^TMP("XMERR",$J)
 | 
|---|
| 29 |  D INIT^XMXADDR
 | 
|---|
| 30 |  D CHKADDR^XMXADDR(XMDUZ,XMTO)
 | 
|---|
| 31 |  I $D(XMERR) D  Q
 | 
|---|
| 32 |  . D ERR2(XMDUZ,XMKN,XMTO,XMFROM)
 | 
|---|
| 33 |  . K XMERR,^TMP("XMERR",$J)
 | 
|---|
| 34 |  D FORCE(XMZ,$S(XMTO="*":7,1:30))
 | 
|---|
| 35 |  D SEND^XMKP(XMDUZ,XMZ)
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 | FORCE(DA,XMDAYS) ; Set Info Only, Closed statuses, and Purge date
 | 
|---|
| 38 |  N DIE,DR
 | 
|---|
| 39 |  S DIE=3.9,DR="1.95///y;1.97///y;1.6///"_$$FMADD^XLFDT(DT,XMDAYS)
 | 
|---|
| 40 |  D ^DIE
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 | CLEANUP(XMKN,XMZ) ; Successfully delivered message, so remove from Postmaster Server Basket
 | 
|---|
| 43 |  D CLEANUP^XMXADDR
 | 
|---|
| 44 |  D ZAPSERV^XMXMSGS1(XMKN,XMZ)
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 | ERR1(XMDUZ,XMKN,XMFROM) ; Send message back to sender if not POSTMASTER@FORUM
 | 
|---|
| 47 |  N A
 | 
|---|
| 48 |  S A(1)="You may not send a message to the "_XMKN_" server."
 | 
|---|
| 49 |  S A(2)="Only the Postmaster at FORUM.VA.GOV has this permission."
 | 
|---|
| 50 |  D SENDMSG^XMXSEND(XMDUZ,"Sender of Message to Server Unacceptable","A",XMFROM)
 | 
|---|
| 51 |  K XMERR,^TMP("XMERR",$J)
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 | ERR2(XMDUZ,XMKN,XMTO,XMFROM) ; Send a message back to sender if single recipient is invalid
 | 
|---|
| 54 |  N A,I,J
 | 
|---|
| 55 |  S A(1)="Your message to the "_XMKN_" server was not accepted"
 | 
|---|
| 56 |  S A(2)="because the lookup for the recipient specified ("_XMTO_")"
 | 
|---|
| 57 |  S A(3)="failed, with the following message:"
 | 
|---|
| 58 |  S J=3,I=0
 | 
|---|
| 59 |  F  S I=$O(^TMP("XMERR",$J,XMERR,"TEXT",I)) Q:'I  S J=J+1,A(J)=^(I)
 | 
|---|
| 60 |  D SENDMSG^XMXSEND(XMDUZ,"Server Recipient Unknown","A",XMFROM)
 | 
|---|
| 61 |  K XMERR,^TMP("XMERR",$J)
 | 
|---|
| 62 |  Q
 | 
|---|