:    :
:     
 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 




:

( 2.1) "-". . - SMTP (Internet Mail, Netscape Messager, Eudora ..) (sendmail, smail, ntmail ..), - , - POP3 IMAP

Sendmail

Internet sendmail. , , . Sendmail . Sendmail . UUCP (Unix-Unix-CoPy) SMTP (Simple Mail Transfer Protocol).

Sendmail " " , . Sendmail :

  • SMTP;
  • UUCP.

Internet , , -. .

Sendmail :

  • -;
  • ;
  • ;
  • ;
  • SMTP-;
  • BIND;
  • .

sendmail

Sendmail : , .

: , .

. , , , . .

. , , . , . .

. . , , .

Sendmail :

  • ;
  • ;
  • ;
  • , sendmail.

, , . :

  • - ;
  • , , (: FROM: <>);
  • .

3.1 sendmail.

, sendmail . , .

- . Sendmail :

  • ;
  • SMTP- ( );
  • .

, sendmail . : , , , , .

SMTP, sendmail . RFC-821 Internet. sendmail , "" TCP SMTP. , sendmail.

SMTP. sendmail (pipe) .

. . . , . sendmail , .


. 3.1. Sendmail

- .

sendmail , . sendmail : , . , . Sendmail , . () . , . , , . : .

. sendmail pipe , . Sendmail pipe. SMTP, pipe. SMTP, SMTP. TCP, sendmail , TCP- SMTP.

. sendmail , , (). . . ( rmail).

sendmail . : , , UUCP SMTP.

:

 user
 user@localhost
 user@localhost.localdomain
 user@alias
 user@alias.localdomain
 user@[local.host.internet.address]
 localhost!user
 localhost!localhost!user
 user@localhost.uucp

- , , .

UUCP :

 host!user
 host!host!user
 user@host.uucp

, , UUCP ( ), , , . UUCP.

SMTP - , RFC-822 Internet. :

 usr@host
 usr@host.domain
 <@host1,@host2,@host3:user@host4>
 user@[remote.host`s.internet.address]

SMTP SMTP.

Berkeley Internet Name Domain (BIND) , sendmail , BIND. BIND , sendmail .

:

 user%hostA@hostB -     hostB   hostA
 user!hostA@hostB -     hostB   hostA
 hostA!user%hostB -    hostA  hostB

sendmail, , . UUCP "stop-go", .. . , , , . , . , . SMTP , - - . SMTP on-line. . , .

sendmail - , .. sendmail . . , , . . , , Internet: . Sendmail , , . , .

sendmail

sendmail /etc/sendmail/conf. :

  • (local information) - , , UUCP ..
  • sendmail, , , " " .
  • , .. , . , .
  • . , - .
  • sendmail. , sendmail .
  • sendmail. . , .
  • sendmail (Precedence). .
  • . , , .. , .
  • . , . sendmail .
  • . sendmail. , .. .
  • . , . , UUCP, SMTP, .
  • , (Rule Set 0).
  • - . . , SMTP UUCP.

, , , . , , , .

:

  • sendmail,
  • ,
  • .

, : , , , .

, sendmail :

Define Macro Dxvalue "x"
Define Class word1 word2 ... "c"
Define Class Fcfile
Set Option Oovalue "o"
Trusted Users Tuser1 user2 ...
Set Precedence Pname=number number name
Define Mailer Mname,[field=value]
Define Header H[?mflag?]name:format
Set Rulset Sn
Define Rule Rlhs rhs comment

sendmail . :


. 3.2. sendmail

sendmail. . :

 ##################
 # local info #
 ##################
 Cwlocalhost
 CP.
 # UUCP relay host
 DYucbvax.Berkeley.EDU
 CPUUCP
 # BITNET relay host
 #DBmailhost.Berkeley.EDU
 DBrelay.kiae.su
 CPBITNET
 # "Smart" relay host (may be null)
 DSrelay.kiae.su
 # who I send unqualified names to (null means deliver locally) 
 DR
 # who gets all local email traffic ($R has precedence for unqualified names)
 DH
 # who I masquerade as (null for no masquerading)
 DM
 # class L: names that should be delivered locally, even if we have a relay
 # class E: names that should be exposed as from this host, even if we masquerade
 #CLroot
 CEroot
 # operators that cannot be in local usernames (i.e., network indicators)
 CO @ % !
 # a class with just dot (for identifying canonical names)
 C..
 # dequoting map Kdequote dequote

, (Cwlocalhost), - (CP....). . , .

- sendmail:

 ######################
 # Special macros #
 ######################
 # SMTP initial login message
 De$j Sendmail $v/$Z ready at $b
 # UNIX initial From header format
 DlFrom $g $d
 # my name for error messages
 DnMAILER-DAEMON
 # delimiter (operator) characters
 Do.:%@!^/[]
 # format of a total name
 Dq$?x$x <$g>$|$g$.
 # Configuration version number
 DZ8.6.6

, sendmail . , , . - , q:

 Dq$?x$x <$g>$|$g$.

. :

" x , : q = _x <_g>, : q=_g".

-:

 if(x!=NULL)
  {
  strcpy(q,x);
  strcat(q," <");
  strcat(q,g);
  strcat(q,">");
  {
 else
  {
  strcpy(q,g);
  }

$? if, $| - else, $. - .

- :

 ###############
 # Options #
 ###############
 # strip message body to
 7 bits on input?
 #O7False
 # Insist that the BIND
 name server be running to resolve names
 OI
 # deliver MIME-encapsulated
 error messages?
 OjTrue

. sendmail. sendmail. , . RFC-822 , , . . , , I (OI) , . , . MIME, .

:

 ###########################
 # Message precedence
 #
 ###########################
 Pfirst-class=0
 Pspecial-delivery=100
 Plist=-30
 Pbulk=-60
 Pjunk=-100
 #####################
 # Trusted users #
 #####################
 Troot
 Tdaemon
 Tuucp

, sendmail:

 #########################
 # Format of headers
 #
 #########################
 H?P?Return-Path: $g
 HReceived: $?sfrom $s
 $.$?_($?s$|from $.$_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for
 $u$.; $b
 H?D?Resent-Date: $a
 H?D?Date: $a
 H?F?Resent-From: $q
 H?F?From: $q
 H?x?Full-Name: $x
 HSubject:
 # HPosted-Date: $a
 # H?l?Received-Date: $b
 H?M?Resent-Message-Id:
 <$t.$i@$j>
 H?M?Message-Id: <$t.$i@$j>

, . . H , , H "?" , , . , Received Subject. .

- . sendmail .

( 3.3).


. 3.3.

, To, From, Cc, .

 ######################################################################
 ######################################################################
 #####
 ##### REWRITING RULES
 #####
 ######################################################################
 ######################################################################
 ###########################################
 ### Rulset 3 - Name Canonicalization ###
 ###########################################
 S3
 # handle null input (translate to <@> special case)
 R$@ $@ <@>
 # basic textual canonicalization -- note RFC733 heuristic here
 R$*<$*>$*<$*>$* $2$3<$4>$5 strip multiple <> <>
 R$*<$*<$+>$*>$* <$3>$5 2-level <> nesting
 R$*<>$* $@ <@> MAIL FROM:<> case
 R$*<$+>$* $2 basic RFC821/822 parsing
 # handle list:; syntax as special case
 R$*:;$* $@ $1 :; <@>
 # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
 R@ $+ , $+ @ $1 : $2 change all "," to ":"
 # localize and dispose of route-based addresses
 R@ $+ : $+ $@ $>96 < @$1 > : $2 handle <route-addr>
 # find focus for list syntax
 R $+ : $* ; @ $+ $@ $>96 $1 : $2 ; < @ $3 > list syntax
 R $+ : $* ; $@ $1 : $2; list syntax
 # find focus for @ syntax addresses
 R$+ @ $+ $: $1 < @ $2 > focus on domain
 R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
 R$+ < @ $+ > $@ $>96 $1 < @ $2 > already canonical
 # do some sanity checking
 R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
 # convert old-style addresses to a domain-based address
 R$- ! $+ $@ $>96 $2 < @ $1 .UUCP > resolve uucp names
 R$+ . $- ! $+ $@ $>96 $3 < @ $1 . $2 > domain uucps
 R$+ ! $+ $@ $>96 $2 < @ $1 .UUCP > uucp subdomains
 # if we have % signs, take the rightmost one
 R$* % $* $1 @ $2 First make them all @s.
 R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
 R$* @ $* $@ $>96 $1 < @ $2 > Insert < > and finish
 # else we must be a local name
 ################################################
 ### Ruleset 96 - bottom half of ruleset 3 ###
 ################################################
 # At this point, everything should be in a "local_part<@domain>extra" format.
 S96
 # handle special cases for local names
 R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
 R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
 R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
 R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
 R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
 R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
 # pass UUCP addresses straight through
 R$* < @ $+ . UUCP > $* $@ $1 < @ $2 . UUCP . > $3
 # pass to name server to make hostname canonical
 R$* < @ $* $~P > $* $: $1 < @ $[ $2 $3 $] > $4
 # local host aliases and pseudo-domains are always canonical
 R$* < @ $=w > $* $: $1 < @ $2 . > $3
 R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
 R$* < @ $* . . > $* $1 < @ $2 . > $3
 # if this is the local hostname, make sure we treat is as canonical
 R$* < @ $j > $* $: $1 < @ $j . > $2
 ##################################################
 ### Ruleset 4 - Final Output Post-rewriting ###
 ##################################################
 S4
 R$*<@> $@ $1 handle <> and list:;
 # strip trailing dot off possibly canonical name
 R$* < @ $+ . > $* $1 < @ $2 > $3
 # externalize local domain info
 R$* < $+ > $* $1 $2 $3 defocus
 R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
 R@ $* $@ @ $1 ...and exit
 # UUCP must always be presented in old form
 R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u
 # delete duplicate local names
 R$+ % $=w @ $=w $1 @ $j u%host@host => u@host
 ##############################################################
 ### Ruleset 97 - recanonicalize and call ruleset zero ###
 ### (used for recursive calls)  ###
 ##############################################################
 S97
 R$* $: $>3 $1
 R$* $@ $>0 $1
 ######################################
 ### Ruleset 0 - Parse Address  ###
 ######################################
 S0
 R<@> $#local $: <> special case error msgs
 R$* : $* ; $#error $@ USAGE $: "list:; syntax illegal for recipient addresses"
 R<@ $+> $#error $@ USAGE $: "user address required"
 R<$* : $* > $#error $@ USAGE $: "colon illegal in host name part"
 # handle numeric address spec
 R$* < @ [ $+ ] > $* $: $>98 $1 < @ [ $2 ] > $3 numeric internet spec
 R$* < @ [ $+ ] > $* $#smtp $@ [$2] $: $1 < @ [$2] > $3 still numeric: send
 # now delete the local info -- note $=O to find characters that cause forwarding
 R$* < @ > $* $@ $>97 $1 user@ => user
 R< @ $=w . > : $* $@ $>97 $2 @here:... -> ...
 R$* $=O $* < @ $=w . > $@ $>97 $1 $2 $3 ...@here -> ...
 # handle local hacks
 R$* $: $>98 $1
 # short circuit local delivery so forwarded email works
 R$+ < @ $=w . > $: $1 < @ $2 . @ $H > first try hub
 R$+ < $+ @ $+ > $#local $: $1 yep ....
 R$+ < $+ @ > $#local $: @ $1 nope, local address
 # resolve remotely connected UUCP links (if any)
 # resolve fake top level domains by forwarding to other hosts
 R$*<@$+.BITNET.>$* $: $>95 < $B > $1 <@$2.BITNET.> $3 user@host.BITNET
 # forward non-local UUCP traffic to our UUCP relay
 R$*<@$*.UUCP.>$* $: $>95 < $Y > $1 <@$2.UUCP.> $3 uucp mail
 # pass names that still have a host to a smarthost (if defined)
 R$* < @ $* > $* $: $>95 < $S > $1 < @ $2 > $3 glue on smarthost name
 # deal with other remote names
 R$* < @$* > $* $#smtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
 # if this is quoted, strip the quotes and try again
 R$+ $: $(dequote $1 $) strip quotes
 R$+ $=O $+ $@ $>97 $1 $2 $3 try again
 # handle locally delivered names
 R$=L $#local $: @ $1 special local names
 R$+ $#local $: $1 regular local names
 ###########################################################################
 ### Ruleset 5 - special rewriting after aliases have been expanded ###
 ### (new sendmail only)  ###
 ###########################################################################
 S5
 # see if we have a relay or a hub
 R$+ $: < $R > $1 try relay
 R< > $+ $: < $H > $1 try hub
 R< > $+ $@ $1 nope, give up
 R< $- : $+ > $+ $: $>95 < $1 : $2 > $3 < @ $2 >
 R< $+ > $+ $@ $>95 < $1 > $2 < @ $1 >
 ###################################################################
 ### Ruleset 95 - canonify mailer:host syntax to triple ###
 ###################################################################
 S95
 R< > $* $@ $1 strip off null relay
 R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
 R< $=w > $* $@ $2 delete local host
 R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
 ###################################################################
 ### Ruleset 98 - local part of ruleset zero (can be null) ###
 ###################################################################
 S98

. (mail), (sh) SMTP.

 ##################################################
 ### Local and Program Mailer specification ###
 ##################################################
 Mlocal, P=/usr/libexec/mail.local, F=lsDFMrmn, S=10, R=20/40,
  A=mail -d $u
 Mprog, P=/bin/sh, F=lsDFMeu, S=10, R=20/40, D=$z:/,
  A=sh -c $u
 S10
 R<@> $n errors to mailer-daemon
 R$+ $: $>40 $1
 S20
 R$+ < @ $* > $: $1 strip host part
 S40
 #####################################
 ### SMTP Mailer specification ###
 #####################################
 Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n,
  L=990, A=IPC $h
 Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n,
  L=990, A=IPC $h
 Mrelay, P=[IPC], F=mDFMuXa, S=11/31, R=61, E=\r\n,
  L=2040, A=IPC $h

, S11.

 # envelope sender and masquerading recipient rewriting
 #
 S11
 R$+ $: $>51 $1 sender/recipient common
 R$* :; <@> $@ $1:; list:; special case
 R$* $@ $>61 $1 qualify unqual'ed names

- UUCP:

 uucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000,
  A=uux - -r -z -a$f -gC $h!rmail

, S13 R23 sendmail.

SMTP

SMTP telnet, 25:

 citmgu> telnet server.citmgu.ru 25

SMTP, SMTP :

 # telnet citmgu.ru 25
Trying 194.85.135.66...
Connected to citmgu.ru.
Escape character is '^]'.
 220 cit-u.citmgu.ru ESMTP Sendmail 8.8.5/8.8.5; Mon, 30 Jun 1997 09:45:55 GMT
 help
 214-This is Sendmail version 8.8.5
 214-Topics:
 214- HELO EHLO MAIL RCPT DATA
 214- RSET NOOP QUIT HELP VRFY
 214- EXPN VERB ETRN DSN
 214-For more info use "HELP <topic>".
 214-To report bugs in the implementation send email to
 214- sendmail-bugs@sendmail.org.
 214-For local information send email to Postmaster at your site.
 214 End of HELP info
 MAIL FROM: paul
 250 paul... Sender ok
 RCPT TO: paul
 250 paul... Recipient ok
 DATA
 354 Enter mail, end with "." on a line by itself
 This is a test message
 .
 250 JAA24836 Message accepted for delivery
 quit
 221 cit-u.citmgu.ru closing connection
 Connection closed by foreign host.
 You have new mail.
 #

help , SMTP. MAIL FROM: . RCPT TO:, . DATA , .. . . . "." . , . : , . , - :

 paul%quest.polyn.kiae.su@citmgu.ru

citmgu.ru, quest.polyn.kiae.su.

POP3

, POP3 : . . , . POP3 SMTP , .

POP3:

 quest> telnet quest.net.kiae.su
 Trying 144.206.130.138...
 Connected to quest.net.kiae.su.
 Escape character is '^]'.
 +OK QPOP (version 2.2) at quest.net.kiae.su starting.
  <10124.867839706@quest.net.kiae.su>
 user paul
 +OK Password required for paul.
 pass Kukuru23432
 +OK paul has 6 messages (12576 octets).
 stat
 +OK 6 12576
 list
 +OK 6 messages (12576 octets)
 1 1447
 2 2640
 3 2296
 4 1100
 5 3025
 6 2068
 .
 noop
 +OK
 last
 +OK 4 is the last read message.
 retr 4
 +OK 1100 octets
 Received: from mail1.relcom.ru (mail1.relcom.ru [193.125.152.4]) by 
 quest.net.kiae.su (8.7.5/8.7.3) with ESMTP id CAA09628 for 
 <paul@quest.net.kiae.su>; Wed, 2
 Jul 1997 02:51:43 +0400 (MSD)
 Received: from thevni (uucp@localhost) by mail1.relcom.ru 
 (8.7.5.R.ML.S/Relcom-2A) with UUCP
  id BAA03544 for paul;Wed, 2 Jul 1997 01:34:45 +0400 (MSD)
 Received: by Relay1.relcom.ru (UUMAIL/2.0); Wed, 2 Jul 97 01:34:44 +0300
 Received: by theor.vniinm.msk.su (UUPC/@ v5.06gamma, 07Feb93);
  Wed, 2 Jul 1997 01:24:57 +0400
 To: paul@kiae.su
 References: <33B92C6B.9FA2C1A4@kiae.su>
 Message-Id: <AAeMNkpiq1@theor.vniinm.msk.su>
 Organization: A.A. Bochvar Institute for Inorganic Materials, Theoret
 From: "Alexander Z. Solontsov" <sol@theor.vniinm.msk.su>
 Date: Wed, 2 Jul 97 01:24:56 +0400
 X-Mailer: BML [MS/DOS Beauty Mail v.1.36]
 Subject: life
 Lines: 9
 X-UIDL: 2313051b98ef908dceefe8b801d9e60d
 Status: RO
  
 To: N.M.Sergeeva
  
 Dear H.M.,
  
 I am still alive, publishing a lot, and this year applied to RAN.
 Would be pleased to hear from you in a more derect way.
 Alexander
  
 .
 dele 4
 +OK Message 4 has been deleted.
 rset 4
 -ERR Too many arguments for the rset command.
 rset
 +OK Maildrop has 6 messages (12576 octets)
 list
 +OK 6 messages (12576 octets)
 1 1447
 2 2640
 3 2296
 4 1100
 5 3025
 6 2068
 .
 quit
 +OK Pop server at quest.net.kiae.su signing off.
 Connection closed by foreign host.

Telnet 110 TCP. user pass. stat, paul. list . retr . dele . , , rset . Quit .

IMAP

IMAP (Interactive Mail Access Protocol), POP3, .

143 TCP. POP .

IMAP

 OK IMAP2 Server Ready
 A001 LOGIN Fred Secret
 A001 OK User Fred logged in
 A002 SELECT INBOX
 * FLAGS (Meeting Notice \Answered \Flagged \Deleted \Seen)
 * 19 Exists
 * 2 Recent
 * A002 OK Select compete
 A003 FETCH 1:19 ALL
 * 1 Fetch ( .....
 * 19 Fetch (....
 A003 OK Fetch complete
 A004 LOGOUT
 * Bye IMAP2 server quitting
 A004 OK Logout complete

FIND .

Sendmail - "-v"

, , sendmail verbowse , .. ( sendmail) . sendmail , .

 % sendmail -v paul@citmgu.ru
 Test
 .
 paul@citmgu.ru... Connecting to local...
 paul@citmgu.ru... Sent
 % sendmail -v paul@quest.net.kiae.su
 Test
 .
 paul@quest.net.kiae.su... Connecting to quest.net.kiae.su. via esmtp...
 220 quest.net.kiae.su ESMTP Sendmail 8.7.5/8.7.3; Mon, 30 Jun 1997 11:36:31 +040
 0 (MSD)
 >>> EHLO cit-u.citmgu.ru
 250-quest.net.kiae.su Hello [194.85.135.66], pleased to meet you
 250-EXPN
 250-8BITMIME
 250-SIZE
 250-DSN
 250-VERB
 250-ONEX
 250 HELP
 >>> MAIL From:<paul@cit-u.citmgu.ru> SIZE=5
 250 <paul@cit-u.citmgu.ru>... Sender ok
 >>> RCPT To:<paul@quest.net.kiae.su>
 250 Recipient ok
 >>> DATA
 354 Enter mail, end with "." on a line by itself
 >>> .
 250 LAA07168 Message accepted for delivery
 paul@quest.net.kiae.su... Sent (LAA07168 Message accepted for delivery)
 Closing connection to quest.net.kiae.su.
 >>> QUIT
 221 quest.net.kiae.su closing connection
 %

, . , sendmail. named, sendmail.

sendmail "-bt" , , .

0 .

 % sendmail -bt
 ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
 Enter <ruleset> <address>
 > 0 paul@polyn.kiae.su
 rewrite: ruleset 0 input: paul @ polyn . kiae . su
 rewrite: ruleset 98 input: paul @ polyn . kiae . su
 rewrite: ruleset 98 returns: paul @ polyn . kiae . su
 rewrite: ruleset 97 input: paul @ polyn . kiae . su
 rewrite: ruleset 3 input: paul @ polyn . kiae . su
 rewrite: ruleset 96 input: paul < @ polyn . kiae . su >
 rewrite: ruleset 96 returns: paul < @ polyn . kiae . su . >
 rewrite: ruleset 3 returns: paul < @ polyn . kiae . su . >
 rewrite: ruleset 0 input: paul < @ polyn . kiae . su . >
 rewrite: ruleset 98 input: paul < @ polyn . kiae . su . >
 rewrite: ruleset 98 returns: paul < @ polyn . kiae . su . >
 rewrite: ruleset 90 input: < polyn . kiae . su > paul < @ polyn . kiae . su . >
 rewrite: ruleset 90 input: polyn . < kiae . su > paul < @ polyn . kiae . su . >
 rewrite: ruleset 90 input: polyn . kiae . < su > paul < @ polyn . kiae . su . >
 rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . >
 rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . >
 rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . >
 rewrite: ruleset 95 input: < > paul < @ polyn . kiae . su . >
 rewrite: ruleset 95 returns: paul < @ polyn . kiae . su . >
 rewrite: ruleset 0 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . >
 rewrite: ruleset 97 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . >
 rewrite: ruleset 0 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . >
 >

. , . 0 - . .

3, 96. . , . , , , , , . (BITNET UUCP), .

, , :

 %sendmail -bt -d21.12
 >3 paul@polyn.kiae.su
 ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
 Enter <ruleset> <address>
 > rewrite: ruleset 3 input: paul @ polyn . kiae . su
 -----trying rule: $@
 ----- rule fails
 -----trying rule: $*
 -----rule matches: $: $1 < @ >
 rewritten as: paul @ polyn . kiae . su < @ >
 -----trying rule: $* < $* > $* < @ >
 ----- rule fails
 -----trying rule: $* : : $* < @ >
 ----- rule fails
 -----trying rule: : include : $* < @ >
 ----- rule fails
 -----trying rule: $* : $* < @ >
 ----- rule fails
 -----trying rule: $* < @ >
 -----rule matches: $: $1
 rewritten as: paul @ polyn . kiae . su
 -----trying rule: $* ;
 ----- rule fails
 -----trying rule: $@
 ----- rule fails
 -----trying rule: $*
 -----rule matches: $: < $1 >
 rewritten as: < paul @ polyn . kiae . su >
 -----trying rule: $+ < $* >
 ----- rule fails
 -----trying rule: < $* > $+
 ----- rule fails
 -----trying rule: < >
 ----- rule fails
 -----trying rule: < $+ >
 -----rule matches: $: $1
 rewritten as: paul @ polyn . kiae . su
 -----trying rule: @ $+ , $+
 ----- rule fails
 -----trying rule: @ $+ : $+
 ----- rule fails
 -----trying rule: $+ : $* ; @ $+
 ----- rule fails
 -----trying rule: $+ : $* ;
 ----- rule fails
 -----trying rule: $+ @ $+
 -----rule matches: $: $1 < @ $2 >
 rewritten as: paul < @ polyn . kiae . su >
 -----trying rule: $+ < $+ @ $+ >
 ----- rule fails
 -----trying rule: $+ < @ $+ >
 -----rule matches: $@ $> 96 $1 < @ $2 >
 -----callsubr 96
 rewrite: ruleset 96 input: paul < @ polyn . kiae . su >
 -----trying rule: $* < @ localhost > $*
 ----- rule fails
 -----trying rule: $* < @ localhost . net . kiae . su > $*
 ----- rule fails
 -----trying rule: $* < @ localhost . UUCP > $*
 ----- rule fails
 -----trying rule: $* < @ [ $+ ] > $*
 ----- rule fails
 -----trying rule: $* < @ @ $=w > $*
 ----- rule fails
 -----trying rule: $* < @ @ $+ > $*
 ----- rule fails
 -----trying rule: $* < @ $+ . UUCP > $*
 ----- rule fails
 -----trying rule: $* < @ $* $~P > $*
 -----rule matches: $: $1 < @ $[ $2 $3 $] > $4
 rewritten as: paul < @ polyn . kiae . su . >
 -----trying rule: $* < @ $=w > $*
 ----- rule fails
 -----trying rule: $* < @ $* $=P > $*
 -----rule matches: $: $1 < @ $2 $3 . > $4
 rewritten as: paul < @ polyn . kiae . su . . >
 -----trying rule: $* < @ $* . . > $*
 -----rule matches: $1 < @ $2 . > $3
 rewritten as: paul < @ polyn . kiae . su . >
 -----trying rule: $* < @ $* . . > $*
 ----- rule fails
 -----trying rule: $* < @ quest . net . kiae . su > $*
 ----- rule fails
 rewrite: ruleset 96 returns: paul < @ polyn . kiae . su . >
 rewritten as: paul < @ polyn . kiae . su . >
 rewrite: ruleset 3 returns: paul < @ polyn . kiae . su . >
 >96 paul@polyn.kiae.su 
 > rewrite: ruleset 96 input: paul @ polyn . kiae . su
 -----trying rule: $* < @ localhost > $*
 ----- rule fails
 -----trying rule: $* < @ localhost . net . kiae . su > $*
 ----- rule fails
 -----trying rule: $* < @ localhost . UUCP > $*
 ----- rule fails
 -----trying rule: $* < @ [ $+ ] > $*
 ----- rule fails
 -----trying rule: $* < @ @ $=w > $*
 ----- rule fails
 -----trying rule: $* < @ @ $+ > $*
 ----- rule fails
 -----trying rule: $* < @ $+ . UUCP > $*
 ----- rule fails
 -----trying rule: $* < @ $* $~P > $*
 ----- rule fails
 -----trying rule: $* < @ $=w > $*
 ----- rule fails
 -----trying rule: $* < @ $* $=P > $*
 ----- rule fails
 -----trying rule: $* < @ $* . . > $*
 ----- rule fails
 -----trying rule: $* < @ quest . net . kiae . su > $*
 ----- rule fails
 rewrite: ruleset 96 returns: paul @ polyn . kiae . su
 >

sendmail, .

mail

- mail mailx. mail , . , mail , .. mail bml , . :

 mail paul

paul . :

 Subject:

, "test". . , mail . Enter, . :

 This is a test message.

Cntrl+D, . . - , "." .

mail :

 mail

- :

 Mail version 5.5 6/1/90. Type ? for help
 "/var/mail/paul": 1 message 1 new
 >N 1 paul Sun Feb 5 15:21 11/246
 &

, , . - . "N" , , "1" - , paul - , "Sun Feb 5 15:21" - , "11/246" - , . Enter. :

 Message 1:
 From paul Sun Feb 5 15:21:57 1995
 Date: Sun, 5 Feb 95 15:21:57 -0700
 From: paul
 To: paul
 Subject: test
 This is a test message.
 &

, , . . , .

, mail . , , , , . , "&" "q".

mail :

 mail paul < file.in

.

, mail . , HP/UX 9.0, mail , mail BSDI/386 0.9. mailx HP/UX 9.0 mail BSDI/386 0.9. .

mail :

 uuencode test.exe test.exe | mail paul@quest.polyn.kiae.su

test.exe uuencode ASCII, paul quest.polyn.kiae.su.

bml elm. .

bml

bml Relcom. MS-DOS Unix- . 3.4.


. 3.4.

bml :

  • , , ;
  • , ;
  • .

, . - . . , - , - , - . - Enter. ( 3.5).


. 3.5.

Create Mail Edit mail Mail ( 3.6).


. 3.6.

F9. ALT+T Post. ( 3.7).

Bml , , ( , Usenet, uuencode ). , , bml .


. 3.7.

elm

Unix- elm. Elm , bml, . elm:

 elm

, , . , elm . elm 3.8.


. 3.8.

"j" "k", , Enter . elm "Command:" , , "". , . elm ( vi). , , elm , , , .

c elm , delete, , . .

Eudora

Eudora , Internet MS-Windows. , Internet, .

, . , . , . Unix sendmail, MS-Windows ( , Internet). ( 3.9):


. 3.9. - MS-Windows MS-DOS

, -, . . , . - .

3.10 Eudora, : .

POP Account - -, SMTP- POP (Ph) . , Eudora 30 . , Eudora Internet (RFC822), , , MIME, Internet.


. 3.10. Eudora MS-Windows

, , ( ). Eudora : "" , .

MS-Windows Internet. -, , - , . , KOI8. MS-DOS, MS-Windows. , Eudora, "Send Font" "Printer Font". "Arial-Relcom", KOI8, . , , (cyrwin, ) KOI8.

. , .



      ©2010