>>> ,  



 

 

 

( 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 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$. # Configuration version number DZ8.6.6

, sendmail . , , . - , q:

Dq$?x$x $|$g$.

. :

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

-:

if(x!=NULL) { strcpy(q,x); 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: H?M?Message-Id:

, . . 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$5 strip multiple R$*$* $5 2-level nesting R$*$* $@ MAIL FROM: case R$*$* $2 basic RFC821/822 parsing # handle list:; syntax as special case R$*:;$* $@ $1 :; # make sure 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 # 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_partextra" 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 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$*$* $: $>95 < $B > $1 $3 user@host.BITNET # forward non-local UUCP traffic to our UUCP relay R$*$* $: $>95 < $Y > $1 $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=rn, L=990, A=IPC $h Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=rn, L=990, A=IPC $h Mrelay, P=[IPC], F=mDFMuXa, S=11/31, R=61, E=rn, 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 25Trying 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 ". 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. 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 ; 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: Message-Id: Organization: A.A. Bochvar Institute for Inorganic Materials, Theoret From: "Alexander Z. Solontsov" 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: SIZE=5 250 ... Sender ok >>> RCPT To: 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 > 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 > 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.

. , .


 


 

HUB
[pic] 8-PORT 10 BASE-T ETHERNET HUBCo 1. 1.1 Ethernet...

GeniDAQ -4000
GeniDAQ -4000 :...

Internet ASP
Internet ASP , ASP (Active Server Pages) Web , ...

Visual Basic
Visual Basic 2005 - 2006 . 10 1 2006 . ...


, ( ). . ...

DOS
. .. DOS ...


, ...

IT-
IT- , , . , IT- ...

Windows
10 ̳ ...


( ) , : ( ...


............................................................................ ............... . 2 ...