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

XMGAPI3.m

Go to the documentation of this file.
XMGAPI3 ;WASH ISC/REW/LH-Deliver Broadcast Msg & Mark for Vaporization ;04/17/2002  08:59
 ;;8.0;MailMan;;Jun 28, 2002
 ; Entry points used by MailMan options (not covered by DBIA):
 ; ENT    XMR-BROADCAST-VA-WIDE
 ; ENT    XMYB-BROADCAST-VA-WIDE
ENT(XMTO) ; Meant to be invoked by a server.  Delivers a message
 ; either to all users or to a specific user.
 ; The message must have been sent by the POSTMASTER@DOMAIN.NAME.
 ; The AUTOMATIC DELETE DATE for this message is set for each user
 ; to be in 7 days; 30 days if sent to a specific user.
 ; The message is made 'information only' and 'closed'.
 ; XMTO   *=to all users
 ;        DUZ=to only one person -- typically .6 to route to SHARED,MAIL
 ; Variables set in the server invoker:
 ; XQSOP  Server basket name
 ; XQMSG  Message number
 ; XMFROM Who sent the message
 N XMDUZ,XMKN
 S (XMDUZ,DUZ)=.5
 S XMKN="S."_XQSOP
 I $P(XMFROM,"@")'["POSTMASTER"!($P(XMFROM,"@",2)'["FORUM.") D
 . D ERR1(XMDUZ,XMKN,XMFROM)
 E  D
 . D SEND(XMDUZ,XMKN,XQMSG,XMTO,XMFROM)
 D CLEANUP(XMKN,XQMSG)
 Q
SEND(XMDUZ,XMKN,XMZ,XMTO,XMFROM) ;
 K XMERR,^TMP("XMERR",$J)
 D INIT^XMXADDR
 D CHKADDR^XMXADDR(XMDUZ,XMTO)
 I $D(XMERR) D  Q
 . D ERR2(XMDUZ,XMKN,XMTO,XMFROM)
 . K XMERR,^TMP("XMERR",$J)
 D FORCE(XMZ,$S(XMTO="*":7,1:30))
 D SEND^XMKP(XMDUZ,XMZ)
 Q
FORCE(DA,XMDAYS) ; Set Info Only, Closed statuses, and Purge date
 N DIE,DR
 S DIE=3.9,DR="1.95///y;1.97///y;1.6///"_$$FMADD^XLFDT(DT,XMDAYS)
 D ^DIE
 Q
CLEANUP(XMKN,XMZ) ; Successfully delivered message, so remove from Postmaster Server Basket
 D CLEANUP^XMXADDR
 D ZAPSERV^XMXMSGS1(XMKN,XMZ)
 Q
ERR1(XMDUZ,XMKN,XMFROM) ; Send message back to sender if not POSTMASTER@DOMAIN.NAME
 N A
 S A(1)="You may not send a message to the "_XMKN_" server."
 S A(2)="Only the Postmaster at DOMAIN.NAME has this permission."
 D SENDMSG^XMXSEND(XMDUZ,"Sender of Message to Server Unacceptable","A",XMFROM)
 K XMERR,^TMP("XMERR",$J)
 Q
ERR2(XMDUZ,XMKN,XMTO,XMFROM) ; Send a message back to sender if single recipient is invalid
 N A,I,J
 S A(1)="Your message to the "_XMKN_" server was not accepted"
 S A(2)="because the lookup for the recipient specified ("_XMTO_")"
 S A(3)="failed, with the following message:"
 S J=3,I=0
 F  S I=$O(^TMP("XMERR",$J,XMERR,"TEXT",I)) Q:'I  S J=J+1,A(J)=^(I)
 D SENDMSG^XMXSEND(XMDUZ,"Server Recipient Unknown","A",XMFROM)
 K XMERR,^TMP("XMERR",$J)
 Q