| 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 |  ;;
 | 
|---|