###########
# #
###########
# sendmail.
# Copyright (C) 1992-1994 , .
DVvak/1.9
# $X. a-z ,
# A-Z .
# sendmail:
# a - RFC 822
# b - RFC 822
# c - (hop count)
# d - Unix
# f - (from)
# g -
# h -
# i -
# k - UUCP-
# m -
# p - sendmail
# r -
# s -
# t -
# u -
# v - sendmail
# w - (hostname)
# x -
# y - (basename)
# z -
# ,
# "$?X 1 $| 2 $.".
# SMTP.
De$j $v$?V/$V$. Sendmail is ready at $b
# "" .
# .
Dj$w
# "From_".
DlFrom $g $d
# .
DnMAILER-DAEMON
# "" .
Do.:%@!^=/[]
# .
Dq$g$?x ($x)$.
###############
# #
###############
# :
# CX1 2...
# FX
# .
Fw/etc/mail/myhostnames
# , .
CB! % @ : ^
#########################
# #
#########################
# ( RFC 822)
# : "Return-Path", "Received",
# "Date", "From", "Subject", "Sender", "To", "Cc".
#
# Received:
# ["from" domain] ;
# ["by" domain] ;
# ["via" atom] ;
# *("with" atom) ;
# ["id" msg-id] ; receiver msg id
# ["for" addr-spec] ; initial form
# ";" date-time ; time received
#
#
# , ,
# : P - Return-Path, H?P?Return-Path: <$g>
# "Date", "From", "Message-Id" , .
HReceived: $?sfrom $s $.by $j$?r with $r$. id $i;
($v$?V/$V$.) $b
HDate: $a
HFrom: $q
HMessage-Id: <$t.$i@$j>
################################
# "" #
################################
#
# From: -f.
Troot daemon uucp
###########################
# #
###########################
# Precedence:
# ,
# . 0,
# .
# 0.
#Pbulk=-60
#Pfirst-class=0
#Pjunk=-100
#Pspecial-delivery=100
####################
# #
####################
# 'r' - SMTP.
# , SMTP
# .
# - ,
# .
# .
Or2h
# 'T' - , .
# .
OT3d
# 'Y' - (fork)
# .
# , ..
# .
# .
# ( ).
#OY
# 'y', 'z' 'Z' - .
# :
# = - ( * z) + ( * y) + ( * Z)
# '' - ,
# '' - (. 'P'),
# '' - - ,
# '' - (0, 1...).
# , .
# y=1000, z=1800, Z=9000.
#Oy1000
#Oz1800
#OZ9000
# 'x', 'q' 'X' - .
# , ,
# , x
# :
# q
# > ----------------
# - x + 1
# X, sendmail
# SMTP-.
# x=8, q=10000, X=12.
#Ox8
#Oq10000
#OX12
# 'd' - .
# : interactive - ( ),
# background - ( ),
# queue - ( ).
Odbackground
# 'L' - , 9.
#OL9
# 'u' 'g' - ,
# .
# u=1, g=1.
#Ou1
#Og1
# 'D' - aliases.{pag,dir}
# aliases.
# .
#OD
# 'A' - .
# - ./aliases.
OA/etc/mail/aliases
# 'Q' - .
# - ./mqueue.
OQ/var/spool/mqueue
# 'H' - help- SMTP.
# - ./sendmail.hf.
OH/usr/share/misc/sendmail.hf
# 'S' - .
# - ./sendmail.st.
OS/var/log/sendmail.st
# 'B' - .
# .
# - .
#OB.
# 'F' - .
# - 0644.
OF0600
# 'a' - aliases.{pag,dir}
# ( @:@).
# - .
# 5 .
Oa5
# 'o' - "" ,
# .. .
# .
# .
Oo
# 's' - "",
# () .
# .
Os
# 'I' - name- (BIND), /etc/hosts.
# , /etc/hosts
# MX-. , name-,
# /etc/hosts.
# .
#OI
# 'c' - (expensive),
# , .
# .
Oc
# 'e' - . :
# print - ( ),
# quiet - , ,
# mail - ,
# write - ,
# ,
# exit - .
#Oeprint
# 'f' - "From_". .
Of
# 'i' - , .
# .
#Oi
# 'm' - " ". ,
# .
# .
Om
# 'v' - . .
#Ov
# 'K' - .
# : KXfile. file X.
# aliases @.
# R.
# IDA sendmail:
#OKR/etc/mail/routes
# sendmail 8.5:
KR hash /etc/mail/routes
###########
# #
###########
# :
# M, Path=, Argv=, Eol=-, Maxsize=-,
# Flags=, Sender=-, Recipient=-,
# Linelimit=--
# Path , , /bin/mail,
# :
# [IPC] [TCP] - SMTP ,
# [LPC] (local person communication) - SMTP /,
# . . :-)
# :
# C - '@',
# E - From_ >From
# e - "" , ()
# f - "-f from", root
# h -
# I - - SMTP sendmail
# l - ( )
# L - RFC821
# m -
# n - "From_"
# p - MAIL FROM:
# r - , -f, -r
# S - root
# s - "
# u -
# U - "From_" "remote from "
# X - , ,
# .
Mlocal, Path=/usr/libexec/mail.local, Argv=mail -r $g $u,
Flags=lsmn, Sender=11/10, Recipient=12
# ( ).
Mprog, Path=/bin/sh, Argv=sh -c $u,
Flags=lse, Sender=11/10, Recipient=12
# SMTP.
Mtcp, Path=[IPC], Argv=IPC $h, Eol=\r\n,
Flags=umeXC, Linelimit=990, Sender=11/10, Recipient=12
# UUCP.
Muucp, Path=/usr/bin/uux, Argv=uux - -z -r $h!rmail ($u),
Flags=Uupm, Maxsize=1000000, Sender=11/10, Recipient=12
# UUCP .
Muucpb, Path=/usr/bin/uux, Argv=uux - -z -r $h!rmail ($u),
Flags=Uupm, Maxsize=1000000, Sender=11, Recipient=13
##########################
# #
##########################
# () :
# 1 - ,
# 2 - ,
# 3 - ,
# 4 - ,
# 0 - .
# ()
# 3 -> 1 -> 4.
# 3 -> 1 -> X -> 4,
# X - , Sender .
# 3 -> 2 -> Y -> 4,
# Y - , Recipient .
# 3 -> 0.
# '/',
# ( ) 1 2
# 5 6 .
# S# , 0..29.
# R :
# R- -
# .
# :
# $* -
# $+ -
# $- -
# $=x - X
# $~x - , X
# $%D - - DBM- D
# $^D - , DBM- D
# :
# $1 $2 $2 .. - ,
# $&X - X
# $[ $: $] - ( name-, BIND)
# $(D $@ $: $) - DBM-
# $>7 -
# $# - , 0
# $@ - , 0
# $: - , 0
# $@
# ( return), $:
# ( break).
# 1, 2, 5, 6 - , sendmail 5.
#------------------------------
# o 3:
#------------------------------
S3
# .
R$*<>$* $@@
# . . ?
R$*<$*<$*<$+>$*>$*>$* $4 <<<>>>
R$*<$*<$+>$*>$* $3 <<>>
R$*<$+>$* $2 RFC821/822
# ^ !.
R$*^$* $1!$2
# RFC 1123 <@a,@b,@c:user@d>.
# @a,@b,@c:user<@d>. 0 ,
# . "From_".
R$*@$*@$* $1^$2@$3 @ ^
# internet.
R$+@$+ $:$1<@$2> <>
R$*^$* $1@$2 ^ => @
R$+<$+@$+> $1$2<@$3> a => ab<@c>
# . BIND.
R$*<@$-> $:$1<@$[$2$:$2$]> CNAME
# .
R$+<@$+> $@$1<@$2> ab<@c>
# UUCP-
R$=w!$* $2 myname!addr => addr
# UUCP-, ".uucp".
R$~B!$* $@$2<@$1.uucp> ab!cd => cd<@ab.uucp>
# UUCP- , internet.
R$*.$~B!$* $@$3<@$1.$2> ab.c!de => de<@ab.c>
# user%host, a%b%c@d.
R$*%$* $1@$2 @ %
R$*@$*@$* $1%$2@$3 % @
R$*@$* $@$1<@$2>
# user. .
R$* $@$1<@$w>
#-------------------------------------------
# o 4:
#-------------------------------------------
S4
R@ $@ <>
# 1.2.3.4 . BIND.
R$*<@[$+]> $:$1<@$[[$2]$]>
# BIND. .
# , , relay ,
# .
R$*<@$-> $:$1<@$[$2$:$2$]> CNAME
# .
R$*<@$+.uucp> $2!$1
R$*<$+> $1$2
# .
R$+%$=w@$=w $1@$w u%host@host => u@host
#-------------------------------------
# o 7:
#-------------------------------------
S7
# - .
R$*<@$=w> $@$1<@$w>
# .
R$*<@$*> $:$1<@$2^$(R$2$:%$)> ^
# .
# <@addr^%> - .
R$*<@$*.$-.$-.$-.$-.$-^%> $:$1<@$2.$3.$4.$5.$6.$7^$(R.$3.$4.$5.$6.$7$:%$)>
R$*<@$*.$-.$-.$-.$-^%> $:$1<@$2.$3.$4.$5.$6^$(R.$3.$4.$5.$6$:%$)>
R$*<@$*.$-.$-.$-^%> $:$1<@$2.$3.$4.$5^$(R.$3.$4.$5$:%$)>
R$*<@$*.$-.$-^%> $:$1<@$2.$3.$4^$(R.$3.$4$:%$)>
R$*<@$*.$-^%> $:$1<@$2.$3^$(R.$3$:%$)>
R$*<@$*^%> $:$1<@$2^$(R.$:%$)> default (.)
R$*<@$*^%> $@$1<@^%No route to $2>
R$*<@$*^%$*> $@$1<@$2^%$3>
R$*<@$*^:$*> $@$1<@$2^:$3>
R$*<@$*^/$*> $@$1<@$2^/$3>
R$*<@$*^=$*@> $@$1<@$2^=$3@$w>
R$*<@$*^=$*> $@$1<@$2^=$3>
# , .
R$*<@$*^!!$*> $1<@$2^uucpb!!$3> <@addr^!!host> uucpb
R$*<@$*^!$*> $1<@$2^uucp!$3> <@addr^!host> uucp
R$*<@$*^@$*> $1<@$2^tcp@$3> <@addr^@> tcp
# , .
R$*<@$*^$*!> $:$1<@$2^$3!$2> <@addr^m!>
R$*<@$*^$*@> $:$1<@$2^$3@$2> <@addr^m@>
# .uucp UUCP-.
R$*<@$*^$*!$+.uucp> $1<@$2^$3!$4> <@addr^m!host.uucp>
# :
# <@addr^mailer@host>, mailer=uucp|tcp, host internet-,
# <@addr^mailer!host>, mailer=uucp|tcp, host ,
# <@addr^%message> - .
R$*<@$*^$*!!$*> $@$1<@$2^$3!$4> <@addr^m!!host> uucp
R$*<@$*^$*!$*> $@$1<@$2^$3@$4> uucp
R$*<@$*^$*@$*> $@$1<@$2^$3@$4> internet-
R$* $@<@^%Invalid route table>
#-----------------------------------
# o 8:
#-----------------------------------
#
S8
R$* $:$>3$1
R$* $:$>0$1
#------------------------------------------
# o 9:
#------------------------------------------
# .
S9
# /etc/mail/routes.
R$*<@$*> $:$(R$1@$2$:$1<@$2>$) , <>
R$*<@$*> $@$1<@$2>
R$*@ $1@$w
R$* $:$>3$1
#-------------------------
# o 0:
#-------------------------
S0
# RFC 1123 @a,@b,@c:user<@d>.
# user@d.
R@$+:$+ $2
# .
R$*<@listserv.$=w> $#prog$:/etc/mail/listserv $1 $&f
R$*<@$=w> $:$1<@$w> "" -
# .
R$*<@$*> $:$>9$1<@$2> 9
# [1.2.3.4], , name-.
R$*<@[$+]> $:$1<@$[[$2]$]> BIND
# name- .
R$*<@[$+]> $#tcp$@[$2]$:$1@[$2] SMTP
# .
R$*<@$*> $:$>7$1<@$2> 7
# <@oldaddr^=newaddr> - .
# 7.
R$*<@$*^=$*@$*> $:$>7$3<@$4> a<@old^=b@new> -> b<@new>
R$*<@$*^=$*> $:$>7$1<@$3> <@old^=new> -> <@new>
R$*<@$*^=$*> $#error$:Loop in routes
# : <@addr^%>.
R$*<@$*^%$*> $#error$:$3
# <@addr^:path> - .
# , - ,
# , - .
R$*<@$*^:$*> $#prog$:$3 $1 $&f
# .
# routes :
# !host.from:host.to ___
# -
R$*<@$*^$*!$*> $:$1<@$2^$3!$4>$(R!$&s:$4$:$)
R$*<@$*^$*@$*> $:$1<@$2^$3@$4>$(R!$&s:$4$:$)
R$*<@$*^$*!$*> $:$1<@$2^$3!$4>$(R!$&s$:$)
R$*<@$*^$*@$*> $:$1<@$2^$3@$4>$(R!$&s$:$)
R$*<@$*^$*!$*>$+ $:$1<@$2^$3!$4>$(R!$&s%$4$:$5$)
R$*<@$*^$*@$*>$+ $:$1<@$2^$3@$4>$(R!$&s%$4$:$5$)
R$*<$*>$+ $#error$:$3
# <@addr^m!host> - .
R$*<@$*^$*!$*> $#$3$@$4$:$1
# <@addr^m@host> - internet.
R$*<@$*^$*@$*> $#$3$@$4$:$1<@$2> user@host.domain
# .
# 3 0.
R$*!$*<@$w> $@$>8$1!$2 host!user@myname => host!user
R$*%$*<@$w> $@$>8$1%$2 host%user@myname => host%user
# -
R@ $#error$:Invalid address
# .
R$*<@$w> $#local$:$1
R$*<@> $#local$:$1
R$+ $#local$:$1
#-------------------
# o 10:
#-------------------
S10
#------------------------------------
# o 11:
#------------------------------------
# From_
# .
S11
# " " .
R$*<@$=w> $:$1<@$w> "" -
# . BIND.
#R$*<@$-> $:$1<@$[$2$:$2$]> CNAME
# @a,@b,@c:user<@d>.
R$*@$*,@$*:$*<$*> $1$2!@$3:$4<$5> @a,@b:u<@h> -> a!@b:u<@h>
R$*@$*:$*<$*> $1$2:$3<$4> a!@b:u<@h> -> a!b!u<@h>
#
R$*@$*<@$*> $1%$2<@$3> @ %
R$*:$*<@$*> $1!$3!$2 @ :
R$*<@$*> $2!$1 @
# ^ .
R$* $:^$1^ ^
R$*^$*!$* $1$2!^$3
# u%a%b%c.
R$*^$*%$*^$* $1^$3^!$2$4 a%b%c -> c!b!a
R$*^$* $1$2 ^
# .
R$=w!$* $2
Rlocalhost!$* $1 localhost
# ".uucp" .
R$~B.uucp!$* $1!$2
R$*!$~B.uucp!$* $1!$2!$3
# .
R$* $:$w!$1
#-----------------------------------
# o 12:
#-----------------------------------
S12
# RFC 1123 @a,@b,@c:user<@d>.
# user@d.
R@$+:$+ $2
#-------------------------------------------------------
# o 13: ,
#-------------------------------------------------------
S13
R$* $:$>12$1 12
# . ,
# internet.
R$+<@$+.uucp> $2!$1 u@h.uucp => h!u
R$+<@$*> $2!$1 u@h => h!u
Last-modified: Tue, 11 Aug 1998 05:51:46 GMT