| 1 | XMR4 ;ISC-SF/GMB-SMTP HELP ;04/17/2002  11:17 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | HELPME ; | 
|---|
| 4 | N XMALL | 
|---|
| 5 | S XMALL="HHHH^EXPN^HELO^HELP^MAIL^NOOP^QUIT^RCPT^RSET^TURN^VRFY" | 
|---|
| 6 | I XMP="ALL" D ALL G END | 
|---|
| 7 | I U_XMALL_U[(U_XMP_U) D SHOW(XMP) G END | 
|---|
| 8 | D SHOW("HHHH") | 
|---|
| 9 | END I 'ER S XMSG="214 " X XMSEN | 
|---|
| 10 | Q | 
|---|
| 11 | ALL ; | 
|---|
| 12 | N I,J | 
|---|
| 13 | F I=1:1:$L(XMALL,U) D SHOW($P(XMALL,U,I)) Q:ER | 
|---|
| 14 | Q | 
|---|
| 15 | SHOW(XMCMD) ; | 
|---|
| 16 | N I | 
|---|
| 17 | F I=0:1 S XMSG="214-"_$P($T(@XMCMD+I),";",3,99) Q:$L(XMSG)=4  X XMSEN Q:ER | 
|---|
| 18 | Q | 
|---|
| 19 | HHHH ;; | 
|---|
| 20 | ;;This is the simple mail transfer protocol receiver | 
|---|
| 21 | ;;Commands currently understood are: | 
|---|
| 22 | ;;HELO <domain> (which initiates a transaction) | 
|---|
| 23 | ;;MAIL FROM: <reverse-path> | 
|---|
| 24 | ;;RCPT TO: <forward-path>  (which names a recipient) | 
|---|
| 25 | ;;DATA (terminated with a single line of '.') | 
|---|
| 26 | ;;HELP (which displays this text) | 
|---|
| 27 | ;;NOOP (which does nothing) | 
|---|
| 28 | ;;RSET <reason for> which stops transmission of message | 
|---|
| 29 | ;;STAT (which displays the current status of the receiver) | 
|---|
| 30 | ;;VRFY <user> (which verifies the existence of a user) | 
|---|
| 31 | ;;TURN (Which turns around the line; Sender becomes receiver) | 
|---|
| 32 | ;;EXPN <mail group> (which lists the members of a group) | 
|---|
| 33 | ;;QUIT (which terminates the connection) | 
|---|
| 34 | ;; | 
|---|
| 35 | ;;CHRS <domain> initialize a remote domain | 
|---|
| 36 | ;;Extensions: | 
|---|
| 37 | ;;MESS ID:XMREMID Sending message remote ID to allow processing to stop | 
|---|
| 38 | ;; | 
|---|
| 39 | ;;Enter HELP ALL to see further discussion on all commands, or | 
|---|
| 40 | ;;HELP <command> to see further discussion of <command>. | 
|---|
| 41 | ;; | 
|---|
| 42 | HELO ;; | 
|---|
| 43 | ;;The HELO command is used to identify the sending host to the receiver: | 
|---|
| 44 | ;; | 
|---|
| 45 | ;;   HELO <domain> | 
|---|
| 46 | ;; | 
|---|
| 47 | ;; Where <domain> is the name of the sending host. | 
|---|
| 48 | ;; | 
|---|
| 49 | ;;If the receiver will accept mail, it responds with its name. | 
|---|
| 50 | ;; | 
|---|
| 51 | ;;The HELO command must be the first command of a mail sequence. | 
|---|
| 52 | ;; | 
|---|
| 53 | MAIL ;; | 
|---|
| 54 | ;;The MAIL command is used after a HELO command to ask a receiver to | 
|---|
| 55 | ;;accept a mail message.  The format is: | 
|---|
| 56 | ;; | 
|---|
| 57 | ;;  MAIL FROM: <user>@<site> | 
|---|
| 58 | ;; | 
|---|
| 59 | ;;where <user> is the name of the user sending the message, and <site> | 
|---|
| 60 | ;;is the name of the site sending the mail, in Internet domain | 
|---|
| 61 | ;;format. | 
|---|
| 62 | ;; | 
|---|
| 63 | ;;The receiver will respond with "250 OK" if accepted, and "501 Invalid | 
|---|
| 64 | ;;Reverse path specification" if not. | 
|---|
| 65 | ;; | 
|---|
| 66 | ;;This command is followed with RCPT and DATA commands to name | 
|---|
| 67 | ;;and transfer the data, respectively. | 
|---|
| 68 | ;; | 
|---|
| 69 | RCPT ;; | 
|---|
| 70 | ;;This command is used to identify the recipients of the mail. | 
|---|
| 71 | ;;Its format is: | 
|---|
| 72 | ;; | 
|---|
| 73 | ;;   RCPT TO: <user> | 
|---|
| 74 | ;; | 
|---|
| 75 | ;;If the user is found, the receiver will respond with "250 OK"; | 
|---|
| 76 | ;;Otherwise, it will say "501 Invalid forward path specification". | 
|---|
| 77 | ;; | 
|---|
| 78 | ;;Each recipient of the message is named individually.  The VRFY | 
|---|
| 79 | ;;command can be used to confirm the existence of a user without | 
|---|
| 80 | ;;actually putting him on the recipient list. | 
|---|
| 81 | ;;After recipients are specified, the DATA command is used to transfer | 
|---|
| 82 | ;;the body of the message. | 
|---|
| 83 | ;; | 
|---|
| 84 | DATA ;; | 
|---|
| 85 | ;;The DATA command is used after the MAIL and RCPT commands to transmit | 
|---|
| 86 | ;;the body of the message.  The command has no arguments.  The receiver's | 
|---|
| 87 | ;;response to the command is to either issue an error message: | 
|---|
| 88 | ;;"503 no recipients specified" or "354 Start mail input". | 
|---|
| 89 | ;; | 
|---|
| 90 | ;;Data will be accepted until a line consisting of a single period is | 
|---|
| 91 | ;;detected.  If any line begins with a period, it must have an | 
|---|
| 92 | ;;additional period inserted at the beginning of the line. | 
|---|
| 93 | ;; | 
|---|
| 94 | ;;After the DATA command is completed, the receiver will respond with | 
|---|
| 95 | ;;"250 OK" if the message was accepted, or an error message if | 
|---|
| 96 | ;;otherwise. | 
|---|
| 97 | ;; | 
|---|
| 98 | RSET ;; | 
|---|
| 99 | ;;The RSET (Reset) command is used to reset the receiver to its initial | 
|---|
| 100 | ;;state and cancel any mail in progress.  The sender does not need to | 
|---|
| 101 | ;;issue HELO again. | 
|---|
| 102 | ;; | 
|---|
| 103 | VRFY ;; | 
|---|
| 104 | ;;The VRFY (Verify) command is used to verify the existence of a user | 
|---|
| 105 | ;;at the receiver.  The format is: | 
|---|
| 106 | ;; | 
|---|
| 107 | ;;   VRFY <user> | 
|---|
| 108 | ;; | 
|---|
| 109 | ;;The computer will respond with the user's full name if found, or | 
|---|
| 110 | ;;"550 User not found" if not.  This command can be issued at any | 
|---|
| 111 | ;;time, and does not affect the recipient list. | 
|---|
| 112 | ;; | 
|---|
| 113 | EXPN ;; | 
|---|
| 114 | ;;The EXPN (Expand) command causes the receiver to expand a mailing | 
|---|
| 115 | ;;list, showing the sender the list of individuals in the list. | 
|---|
| 116 | ;; | 
|---|
| 117 | HELP ;; | 
|---|
| 118 | ;;The HELP command displays user assistance information for interactive | 
|---|
| 119 | ;;users.  If issued without an argument, it gives a general introduction. | 
|---|
| 120 | ;;If given an argument naming a command, it gives further information | 
|---|
| 121 | ;;on that command.  If given an argument of "ALL", it displays | 
|---|
| 122 | ;;help on all arguments. | 
|---|
| 123 | ;; | 
|---|
| 124 | NOOP ;; | 
|---|
| 125 | ;;The NOOP (no operation) command causes the receiver to respond with | 
|---|
| 126 | ;;a "250 OK" message. | 
|---|
| 127 | ;; | 
|---|
| 128 | QUIT ;; | 
|---|
| 129 | ;;The QUIT command is used to terminate the mail transfer process. | 
|---|
| 130 | ;;The connection will be closed, and any mail transfers not concluded | 
|---|
| 131 | ;;with a successful DATA command will be lost. | 
|---|
| 132 | ;; | 
|---|
| 133 | TURN ;; | 
|---|
| 134 | ;; | 
|---|