XMR4 ;ISC-SF/GMB-SMTP HELP ;04/17/2002  11:17
 ;;8.0;MailMan;**51**;Jun 28, 2002;Build 9
HELPME ;
 N XMALL
 S XMALL="HHHH^HELO^HELP^MAIL^NOOP^QUIT^RCPT^RSET^TURN^DATA"
 I XMP="ALL" D ALL G END
 I U_XMALL_U[(U_XMP_U) D SHOW(XMP) G END
 D SHOW("HHHH")
END I 'ER S XMSG="214 " X XMSEN
 Q
ALL ;
 N I,J
 F I=1:1:$L(XMALL,U) D SHOW($P(XMALL,U,I)) Q:ER
 Q
SHOW(XMCMD) ;
 N I
 F I=0:1 S XMSG="214-"_$P($T(@XMCMD+I),";",3,99) Q:$L(XMSG)=4  X XMSEN Q:ER
 Q
HHHH ;; 
 ;;This is the simple mail transfer protocol receiver
 ;;Commands currently understood are: 
 ;;HELO <domain> (which initiates a transaction)
 ;;MAIL FROM: <reverse-path>
 ;;RCPT TO: <forward-path>  (which names a recipient)
 ;;DATA (terminated with a single line of '.')
 ;;HELP (which displays this text)
 ;;NOOP (which does nothing)
 ;;RSET <reason for> which stops transmission of message
 ;;STAT (which displays the current status of the receiver)
 ;;TURN (Which turns around the line; Sender becomes receiver)
 ;;QUIT (which terminates the connection)
 ;; 
 ;;CHRS <domain> initialize a remote domain
 ;;Extensions:
 ;;MESS ID:XMREMID Sending message remote ID to allow processing to stop
 ;; 
 ;;Enter HELP ALL to see further discussion on all commands, or
 ;;HELP <command> to see further discussion of <command>.
 ;;
HELO ;; 
 ;;The HELO command is used to identify the sending host to the receiver:
 ;; 
 ;;   HELO <domain>
 ;; 
 ;; Where <domain> is the name of the sending host.
 ;; 
 ;;If the receiver will accept mail, it responds with its name.
 ;; 
 ;;The HELO command must be the first command of a mail sequence.
 ;;
MAIL ;; 
 ;;The MAIL command is used after a HELO command to ask a receiver to
 ;;accept a mail message.  The format is:
 ;; 
 ;;  MAIL FROM: <user>@<site>
 ;; 
 ;;where <user> is the name of the user sending the message, and <site>
 ;;is the name of the site sending the mail, in Internet domain
 ;;format.
 ;;
 ;;The receiver will respond with "250 OK" if accepted, and "501 Invalid
 ;;Reverse path specification" if not.
 ;; 
 ;;This command is followed with RCPT and DATA commands to name
 ;;and transfer the data, respectively.
 ;;
RCPT ;; 
 ;;This command is used to identify the recipients of the mail.
 ;;Its format is:
 ;; 
 ;;   RCPT TO: <user>
 ;; 
 ;;If the user is found, the receiver will respond with "250 OK";
 ;;Otherwise, it will say "501 Invalid forward path specification".
 ;; 
 ;;Each recipient of the message is named individually.  The VRFY
 ;;command can be used to confirm the existence of a user without
 ;;actually putting him on the recipient list. 
 ;;After recipients are specified, the DATA command is used to transfer
 ;;the body of the message.
 ;;
DATA ;; 
 ;;The DATA command is used after the MAIL and RCPT commands to transmit
 ;;the body of the message.  The command has no arguments.  The receiver's
 ;;response to the command is to either issue an error message:
 ;;"503 no recipients specified" or "354 Start mail input".
 ;; 
 ;;Data will be accepted until a line consisting of a single period is
 ;;detected.  If any line begins with a period, it must have an
 ;;additional period inserted at the beginning of the line.
 ;; 
 ;;After the DATA command is completed, the receiver will respond with
 ;;"250 OK" if the message was accepted, or an error message if 
 ;;otherwise.
 ;;
RSET ;; 
 ;;The RSET (Reset) command is used to reset the receiver to its initial
 ;;state and cancel any mail in progress.  The sender does not need to
 ;;issue HELO again.
 ;;
VRFY ;; 
 ;;The VRFY (Verify) command is used to verify the existence of a user
 ;;at the receiver.  The format is:
 ;; 
 ;;   VRFY <user>
 ;;  
 ;;The computer will respond with the user's full name if found, or
 ;;"550 User not found" if not.  This command can be issued at any 
 ;;time, and does not affect the recipient list.
 ;;
EXPN ;; 
 ;;The EXPN (Expand) command causes the receiver to expand a mailing
 ;;list, showing the sender the list of individuals in the list.
 ;;
HELP ;;
 ;;The HELP command displays user assistance information for interactive
 ;;users.  If issued without an argument, it gives a general introduction.
 ;;If given an argument naming a command, it gives further information
 ;;on that command.  If given an argument of "ALL", it displays 
 ;;help on all arguments.
 ;;
NOOP ;; 
 ;;The NOOP (no operation) command causes the receiver to respond with
 ;;a "250 OK" message.
 ;;
QUIT ;; 
 ;;The QUIT command is used to terminate the mail transfer process.
 ;;The connection will be closed, and any mail transfers not concluded
 ;;with a successful DATA command will be lost.
 ;;
TURN ;;  
 ;;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXMR4   4748     printed  Sep 23, 2025@19:48:56                                                                                                                                                                                                        Page 2
XMR4      ;ISC-SF/GMB-SMTP HELP ;04/17/2002  11:17
 +1       ;;8.0;MailMan;**51**;Jun 28, 2002;Build 9
HELPME    ;
 +1        NEW XMALL
 +2        SET XMALL="HHHH^HELO^HELP^MAIL^NOOP^QUIT^RCPT^RSET^TURN^DATA"
 +3        IF XMP="ALL"
               DO ALL
               GOTO END
 +4        IF U_XMALL_U[(U_XMP_U)
               DO SHOW(XMP)
               GOTO END
 +5        DO SHOW("HHHH")
END        IF 'ER
               SET XMSG="214 "
               XECUTE XMSEN
 +1        QUIT 
ALL       ;
 +1        NEW I,J
 +2        FOR I=1:1:$LENGTH(XMALL,U)
               DO SHOW($PIECE(XMALL,U,I))
               if ER
                   QUIT 
 +3        QUIT 
SHOW(XMCMD) ;
 +1        NEW I
 +2        FOR I=0:1
               SET XMSG="214-"_$PIECE($TEXT(@XMCMD+I),";",3,99)
               if $LENGTH(XMSG)=4
                   QUIT 
               XECUTE XMSEN
               if ER
                   QUIT 
 +3        QUIT 
HHHH      ;; 
 +1       ;;This is the simple mail transfer protocol receiver
 +2       ;;Commands currently understood are: 
 +3       ;;HELO <domain> (which initiates a transaction)
 +4       ;;MAIL FROM: <reverse-path>
 +5       ;;RCPT TO: <forward-path>  (which names a recipient)
 +6       ;;DATA (terminated with a single line of '.')
 +7       ;;HELP (which displays this text)
 +8       ;;NOOP (which does nothing)
 +9       ;;RSET <reason for> which stops transmission of message
 +10      ;;STAT (which displays the current status of the receiver)
 +11      ;;TURN (Which turns around the line; Sender becomes receiver)
 +12      ;;QUIT (which terminates the connection)
 +13      ;; 
 +14      ;;CHRS <domain> initialize a remote domain
 +15      ;;Extensions:
 +16      ;;MESS ID:XMREMID Sending message remote ID to allow processing to stop
 +17      ;; 
 +18      ;;Enter HELP ALL to see further discussion on all commands, or
 +19      ;;HELP <command> to see further discussion of <command>.
 +20      ;;
HELO      ;; 
 +1       ;;The HELO command is used to identify the sending host to the receiver:
 +2       ;; 
 +3       ;;   HELO <domain>
 +4       ;; 
 +5       ;; Where <domain> is the name of the sending host.
 +6       ;; 
 +7       ;;If the receiver will accept mail, it responds with its name.
 +8       ;; 
 +9       ;;The HELO command must be the first command of a mail sequence.
 +10      ;;
MAIL      ;; 
 +1       ;;The MAIL command is used after a HELO command to ask a receiver to
 +2       ;;accept a mail message.  The format is:
 +3       ;; 
 +4       ;;  MAIL FROM: <user>@<site>
 +5       ;; 
 +6       ;;where <user> is the name of the user sending the message, and <site>
 +7       ;;is the name of the site sending the mail, in Internet domain
 +8       ;;format.
 +9       ;;
 +10      ;;The receiver will respond with "250 OK" if accepted, and "501 Invalid
 +11      ;;Reverse path specification" if not.
 +12      ;; 
 +13      ;;This command is followed with RCPT and DATA commands to name
 +14      ;;and transfer the data, respectively.
 +15      ;;
RCPT      ;; 
 +1       ;;This command is used to identify the recipients of the mail.
 +2       ;;Its format is:
 +3       ;; 
 +4       ;;   RCPT TO: <user>
 +5       ;; 
 +6       ;;If the user is found, the receiver will respond with "250 OK";
 +7       ;;Otherwise, it will say "501 Invalid forward path specification".
 +8       ;; 
 +9       ;;Each recipient of the message is named individually.  The VRFY
 +10      ;;command can be used to confirm the existence of a user without
 +11      ;;actually putting him on the recipient list. 
 +12      ;;After recipients are specified, the DATA command is used to transfer
 +13      ;;the body of the message.
 +14      ;;
DATA      ;; 
 +1       ;;The DATA command is used after the MAIL and RCPT commands to transmit
 +2       ;;the body of the message.  The command has no arguments.  The receiver's
 +3       ;;response to the command is to either issue an error message:
 +4       ;;"503 no recipients specified" or "354 Start mail input".
 +5       ;; 
 +6       ;;Data will be accepted until a line consisting of a single period is
 +7       ;;detected.  If any line begins with a period, it must have an
 +8       ;;additional period inserted at the beginning of the line.
 +9       ;; 
 +10      ;;After the DATA command is completed, the receiver will respond with
 +11      ;;"250 OK" if the message was accepted, or an error message if 
 +12      ;;otherwise.
 +13      ;;
RSET      ;; 
 +1       ;;The RSET (Reset) command is used to reset the receiver to its initial
 +2       ;;state and cancel any mail in progress.  The sender does not need to
 +3       ;;issue HELO again.
 +4       ;;
VRFY      ;; 
 +1       ;;The VRFY (Verify) command is used to verify the existence of a user
 +2       ;;at the receiver.  The format is:
 +3       ;; 
 +4       ;;   VRFY <user>
 +5       ;;  
 +6       ;;The computer will respond with the user's full name if found, or
 +7       ;;"550 User not found" if not.  This command can be issued at any 
 +8       ;;time, and does not affect the recipient list.
 +9       ;;
EXPN      ;; 
 +1       ;;The EXPN (Expand) command causes the receiver to expand a mailing
 +2       ;;list, showing the sender the list of individuals in the list.
 +3       ;;
HELP      ;;
 +1       ;;The HELP command displays user assistance information for interactive
 +2       ;;users.  If issued without an argument, it gives a general introduction.
 +3       ;;If given an argument naming a command, it gives further information
 +4       ;;on that command.  If given an argument of "ALL", it displays 
 +5       ;;help on all arguments.
 +6       ;;
NOOP      ;; 
 +1       ;;The NOOP (no operation) command causes the receiver to respond with
 +2       ;;a "250 OK" message.
 +3       ;;
QUIT      ;; 
 +1       ;;The QUIT command is used to terminate the mail transfer process.
 +2       ;;The connection will be closed, and any mail transfers not concluded
 +3       ;;with a successful DATA command will be lost.
 +4       ;;
TURN      ;;  
 +1       ;;