home *** CD-ROM | disk | FTP | other *** search
- From decwrl!ucbvax!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!allbery Sat Aug 5 22:20:41 PDT 1989
- Article 1016 of comp.sources.misc:
- Path: decwrl!ucbvax!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!allbery
- From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
- Newsgroups: comp.sources.misc
- Subject: v07i115: Sendmail reference card (troff -ms)
- Message-ID: <62668@uunet.UU.NET>
- Date: 6 Aug 89 02:13:52 GMT
- Sender: allbery@uunet.UU.NET
- Reply-To: jim@hoptoad.UUCP (Jim Joyce)
- Lines: 661
- Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
-
- Posting-number: Volume 7, Issue 115
- Submitted-by: jim@hoptoad.UUCP (Jim Joyce)
- Archive-name: sendmail.ms
-
- [Jetroff 2.x should be able to handle this unchanged; I'll find out soon,
- as I can use this myself. Other troff postprocessors I don't know. ++bsa]
-
- This is troff-able source for the Sendmail Reference Card
- Please do not use this code after September 15, as I will by then
- post a new source with gathered suggestions, corrections, etc.
- My thanks to Eric Allman, Erik Fair and Eliot Lear for their comments.
- Any errors/undocumented Sun-specific things are mine alone.
-
- This file is in two parts:
- * the shell script I used to print the card
- * the source for tbl | eroff
- The finished card takes up a legal sized page.
- My LaserJetII only prints 8 1/2 x 11, so I printed two pages at a time
- in landscape mode, 7i page length (-l2:7i);
- with page number ordering 6, 7, 8, 1, 2, 3, 4, 5 (make a printer's dummy);
- and the -ms macros. I taped the pages together to make the legal sized card.
- The order looks weird, but when folded a` la Z-fold it works fine.
- I realize everyone does not have Elan's eroff, or an equivalent package,
- and so you may need to print out pages, cut and tape, then copy.
-
- If you can't get it to work well enough for you, contact me with
- a US mail address and I will send you one paper copy you can reproduce.
- Please do not ask me to send multiple copies.
- ----end of intro----end of intro----
- #! /bin/sh
- # This file was wrapped with "dummyshar". "sh" this file to extract.
- # Contents: print.card sendmail.ms
- echo extracting 'print.card'
- if test -f 'print.card' -a -z "$1"; then echo Not overwriting 'print.card'; else
- sed 's/^X//' << \EOF > 'print.card'
- X: # The shell script:
- X: # print.card -- print the sendmail ref card
- Xtrap 'trap 0; exit 0' 3
- Xcat contents | tbl | eroff -l2:7i -Oo6,7,8,1,2,3,4,5 -ms $1
- EOF
- chars=`wc -c < 'print.card'`
- if test $chars != 152; then echo 'print.card' is $chars characters, should be 152 characters!; fi
- fi
- echo extracting 'sendmail.ms'
- if test -f 'sendmail.ms' -a -z "$1"; then echo Not overwriting 'sendmail.ms'; else
- sed 's/^X//' << \EOF > 'sendmail.ms'
- X.\"The source for tbl | eroff:
- X.\"Put the lines below into a file corresponding to ``contents'' in the script
- X.fp 1 H
- X.fp 2 HI
- X.fp 3 HB
- X.bd HI 3
- X.po 0i
- X.nr PO 0i
- X.pl 8.4i \" Duplex -- with elan fudge
- X.ll 3.2i
- X.lt 3.2i
- X.nr LL 3.2i
- X.nr HM .5i
- X.nr FM .25i
- X.\".ds CH -\fHPanel %-
- X.ds CH
- X.ft H
- X.de Cb
- X. ps 12
- X. ft CB
- X..
- X.de Ce
- X. ps 0
- X. ft H
- X..
- X.de Nh
- X. ne 3
- X. ft HB
- X. NH
- X. ft HB
- X..
- X.LP
- X.ce
- X.ft HB
- X\s14Sendmail Reference Card\s0
- X.sp .3i
- X.ft HI
- X.ce
- XJim Joyce
- X.sp .2i
- X.ce 99
- X.ft H
- X.nf
- XThe Gawain Group
- X139 Noe St
- XSF, CA 94114
- X+1-415/626-7581
- X.NH 1
- XNotation for this card
- X.LP
- X.TS
- Xl 2 l.
- X\s12\f(CBstuff\fH\s10 As it should be typed; examples
- X\f(HIItalics\fH Items you supply
- XNormal Explanation
- X.TE
- X.Nh
- XCommand Line Arguments
- X.LP
- X.TS
- Xlp12fCB 2 lp10w(2.5i).
- X-f \s10\f(HIname\fH Sender's name;
- X ignored unless trusted user
- X-r \s10\f(HIname\fH Obsolete form of \s12\f(CB-f\fH\s0
- X-h 9 Set hop count to \s12\f(CB9\fH\s0
- X-F \s10\f(HIname\fH Set full name of sender to \f(HIname\fH
- X-n Do not allow aliasing or forwarding
- X-t Send to everyone in \s12\f(CBTo:,
- X \s12CC:, Bcc\fH\s10 lines;
- X delete \s12\f(CBBcc:\fH\s10 line before sending
- X-b\s10\f(HIx\fH Set operation mode to \f(HIx\fH, as in:
- X-bm Deliver the mail (default)
- X-ba Run in ARPANET mode
- X-bs Speak SMTP
- X-bd Run as a daemon
- X-bt Run in test mode
- X-bv Verify recipients
- X-bi Initialize the alias database
- X-bp Print the mail queue
- X-bz Freeze the configuration file
- X-q\s10\f(HI1h\fH Process queued mail every hour;
- X if no time specified, run once
- X-C\s10\f(HIfile\fH Alternative configuration file
- X.bp
- X-d \s10\f(HIn\fH Set debug level to \f(HIn\fH
- X-o \s10\f(HIxvalue\fH Set configuration option \f(HIx\fH to \f(HIvalue\fH
- X-M \s10\f(HImsg\fH\(dg Runs given message ID
- X-R \s10\f(HIname\fH\(dg Run only messages for \f(HIname\fH
- X.TE
- X.Nh
- XConfiguration File Definitions
- X.LP
- X.ft H
- X.TS
- Xlp12fCB 2 l.
- XD Define a macro
- X \s12\f(CBDW SUN.COM\fH\s0
- X \s12\f(CB$W\fH\s0 has the value \s12\f(CBSUN.COM\fH\s0
- XC Classes of tokens to match; no dots in tokens
- X \s12\f(CBCT arpa com edu\fH\s0
- X \s12\f(CBCT us de fr jp\fH\s0
- XF Get definition tokens from named file
- X \s12\f(CBFT filename\fH\s0
- X If \s12\f(CBfilename\fH\s0 contains
- X \s12\f(CBarpa com edu ...\fH\s0
- X \s12\f(CB$T\fH\s0 contains \s12\f(CBarpa com edu ...\fH\s0
- XO Options to sendmail
- X [Zillions; see section \f(HBOptions to Sendmail\fH]
- X \s12\f(CBOQ /var/spool/mqueue\fH\s0
- X Directory to use as queue directory
- XH Header format text to be provided
- X \s12\f(CBH?F?FROM: $q\fH\s0
- X Insert \s12\f(CBFROM: username\fH\s0 for from line
- X Characters between \s12\f(CB?\fH\s0 are mailer flags;
- X see \f(HBM \(em Define mailer\fH.
- XT Trusted users \(em use with caution!
- X \s12\f(CBT daemon root\fH\s0
- XP \s12\f(CBP\fH\s0recedence/priorities for messages
- X \s12\f(CBPfirst-class=0\fH\s0
- X \s12\f(CBPspecial-delivery=100\fH\s0
- X \s12\f(CBPjunk=-100\fH\s0
- X.TE
- X.Nh
- XOptions to Sendmail
- X.LP
- X.TS
- Xlp12fCB 2 lp10fH .
- XA\s10\f(HIfile\fH Use \f(HIfile\fH as alias file.
- X.br
- X Default: \f(HIaliases\fH in current directory
- Xa\s10\f(HItime\fH Time to wait for \s12\f(CB@:@\fH\s10 entry
- X before rebuilding the alias database
- X.bp
- XB\s10\f(HIvalue\fH Blank substitute; default `` \s14.\s0 ''
- Xb\s10\f(HIn\fH Disallow empty messages
- X to more than n recipients
- XC\s10\f(HIn\fH Remove \f(HIn\fH delivered recipients from queue
- Xc If outgoing mailer marked as expensive,
- X do not connect immediately.
- XD Rebuild alias database if necessary.
- Xd\s10\f(HIx\fH Deliver in mode \f(HIx\fH:
- X \s10\f(HIi\fH \(em interactively/synchronously
- X \s10\f(HIb\fH \(em background/asynchronously
- X \s10\f(HIq\fH \(em queue to deliver during queue run
- Xe\s10\f(HIx\fH Resolve errors via \f(HIx\fH:
- X \s10\f(HIp\fH \(em print error message (default)
- X \s10\f(HIq\fH \(em No messages, just give exit status
- X \s10\f(HIm\fH \(em mail errors back to sender
- X \s10\f(HIw\fH \(em write errors (mail if user not on)
- X \s10\f(HIe\fH \(em mail errors but give zero exit status
- XF\s10\f(HIn\fH Temporary queue file mode, in octal
- Xf Save UNIX-style \f(HBFrom\fH lines at
- X front of headers
- Xg\s10\f(HIn\fH Default group id for mailers is \f(HIn\fH
- XH\s10\f(HIfile\fH Help file for SMTP
- Xh\s10\f(HIn\fH Maximum hop count is \f(HIn\fH; default 17
- Xi Ignore initial dot even if string length is 1
- XL\s10\f(HIn\fH Default log level is \f(HIn\fH
- XM\s10\f(HIxvalue\fH Set macro \f(HIx\fH to \f(HIvalue\fH
- X (Only for command line use)
- Xm T{
- X.na
- XSend to me even if I am in an alias expansion
- XT}
- Xo T{
- X.na
- XHeaders may be in old format;
- X.br
- Xbe adaptive
- XT}
- XP\s10\f(HIname\fH T{
- X.na
- XName of local Postmaster.
- XIf defined, error messages are sent to this name.
- XT}
- XQ\s10\f(HIdir\fH T{
- X.na
- XUse \s10\f(HIdir\fH as queue directory
- XT}
- Xq\s10\f(HIlimit\fH Size limit of messages to be queued
- X under heavy load. Default is 10,000 bytes.
- XR\s10\f(HIserver\fH Deliver through Remote SMTP server
- Xr\s10\f(HItime\fH Interval for read timeout
- XS\s10\f(HIfile\fH Statistics file
- Xs Instantiate the queue file even if
- X attempting immediate delivery.
- X.bp
- XT\s10\f(HItime\fH Set mail queue timeout to \f(HItime\fH
- Xu\s10\f(HIn\fH T{
- X.na
- XSet default userid to \s10\f(HIn\fH.
- XSUID mailers will run suid
- Xno matter what is set here.
- XT}
- Xv Verbose mode.
- XX\s10\f(HIn\fH Set load average value; default 0
- Xx\s10\f(HIn\fH T{
- X.na
- XSet load average value for only queueing mail
- XT}
- XY\s10\f(HIname\fH T{
- X.na
- XYellow pages map name;
- Xdefault, \f(HImail.aliases\fH
- XT}
- Xy\s10\f(HIn\fH T{
- X.na
- XPenalize messages with \s10\f(HIn\fH bytes-per-recipient
- XT}
- XZ\s10\f(HIn\fH T{
- X.na
- XPenalize messages
- Xwith this many bytes-per-delivery attempts
- XT}
- Xz\s10\f(HIn\fH T{
- X.na
- XPenalize messages
- Xwith this many bytes-per-class
- XT}
- X.TE
- X.Nh
- XM \(em Define mailer
- X.LP
- XOnly first character of field name is checked
- X.TS
- Xlp12fCB 2 lp10fH .
- XP\s10\f(HIath\fH Mailer pathname
- X \s12\f(CBP=/bin/mail,\fH\s10
- XF\s10\f(HIlags\fH Mailer Flags
- X \s12\f(CBF=rlsDFMmnP,\fH\s10
- X See \f(HBMailer Flags\fH, below
- XS\s10\f(HIender\fH Rewriting ruleset number
- X \s12\f(CBS=10,\fH\s10
- XR\s10\f(HIecipient\fH Rewriting ruleset number
- X \s12\f(CBR=20,\fH\s10
- XA\s10\f(HIrgv\fH Argument vector to pass to mailer
- X \s12\f(CBA=mail -d $u\fH\s10
- XE\s10\f(HIol\fH End of line string for mailer
- XM\s10\f(HIaxsize\fH Maximum mailer message length
- XL\s10\f(HIength\fH Argv's maximum length
- X.TE
- X.br
- XExample:
- X.nf
- X.Cb
- XMlocal, P=/bin/mail,F=rlsDFMmnP,
- X S=10,R=20,A=mail -d $u
- XMprog, P=/bin/sh,F=lsDFMeuP,
- X S=10,R=20,A=sh -c $u
- X.Ce
- X.fi
- X.bp
- X.Nh
- XMailer Flags
- X.LP
- XEach mailer has its own set of mailer flags.
- X.TS
- Xlp12fCB 2 lp10fH .
- XC T{
- X.na
- XNames in the header
- Xare to have sender's domain added
- Xif they do not have an @
- Xafter being rewritten by ruleset 3
- XT}
- XD Mailer wants a \f(HBDate:\fH header line
- XE Escape \f(HBFrom:\fH with \f(HB>From:\fH
- Xe Expensive mailer; queue mail
- XF Mailer wants a \f(HBFrom:\fH line
- Xf Mailer wants a \f(HB-f \f(HIfrom\fH flag
- X (Only if a network forward operation)
- Xh Preserve uppercase in host names
- XL Limit line lengths as per RFC821
- Xl Mailer is local; final delivery performed
- XM Mailer wants a \f(HBMessage-Id:\fH line
- Xm Can send to multiple users on same host
- X in one transaction.
- Xn Do not insert UNIX-style \f(HBFrom\fH line
- XP Mailer wants a \f(HBReturn-Path:\fH line
- Xp Add local host to SMTP's \f(HBMAIL From:\fH line
- Xr Same as \f(HBf\fH, but sends a -r flag
- XS Do not reset userid before calling mailer
- X (Avoids forged names)
- Xs Strip quotes off name before calling mailer
- XU Mailer wants UNIX-style \f(HBFrom\fH lines
- Xu Preserve uppercase in user names
- XX T{
- X.na
- XLines beginning with dot will have a dot added
- XT}
- Xx Mailer wants a \f(HBFull-Name:\fH line
- X.TE
- X.KS
- X.Nh
- XRuleset Numbers
- X.LP
- X.ft H
- X.TS
- Xl 2 l.
- X3 Puts < > around hostname;
- X internal form. Always done first
- X4 Removes < > from hostname;
- X external form. Always done last
- X0 Returns (protocol,host,user) triple
- X1 Handles \s12\f(CBFrom\fH\s0 in header, if anything
- X2 Handles \s12\f(CBTo\fH\s0 in header, if anything
- X.TE
- X.KE
- X.KS
- X.Nh
- XRuleset Sequences
- X.LP
- X.ft H
- X.TS
- Xl 2 l.
- X\f(HBEnvelope\fH
- XRecipient T{
- X.na
- X3 - 0 - 4 (4 applied to user name from ruleset 0)
- XT}
- XSender 3 - 1 - 4
- X\f(HBHeader\fH
- XRecipient 3 - 2 - \f(HIxx\fH - 4
- X \f(HIxx\fH is ruleset number in R=\f(HIxx\fH
- XSender 3 - 1 - \f(HIxx\fH - 4
- X \f(HIxx\fH is ruleset number in S=\f(HIxx\fH
- X.TE
- X.KE
- X.Nh
- X\f(HBConditionals and Macros\fH
- X.LP
- X.vs -1
- X.na
- XMacros referenced using \s12\f(CB$\s10\f(HIx\fH
- X.br
- X\(em \s10\f(HIx\fH is a one-letter variable name
- X.LP
- XConditionals:
- X\s12\f(CB$?\s10\f(HIx text\s12\f(CB $| \s10\f(HIother\s12\f(CB $.\fH\s10
- X.TS
- Xl 2 l.
- X\s12\f(CB$?\s10\f(HIx\fH if macro \f(HIx\fH is set/supplied
- X\f(HItext\fH insert \f(HItext\fH
- X\s12\f(CB$|\fH\s10 else (the else clause is not required)
- X\s10\f(HIother\fH insert \f(HIother\fH
- X\s12\f(CB$.\fH\s10 end of conditional
- X.TE
- X.Nh
- XSendmail Macros to Define in .cf
- X.LP
- X.ft H
- XLower-case letters reserved for special meanings
- X.br
- XMust be defined for sendmail:
- X.LP
- X.TS
- Xlp12fCB 2 lp10fH .
- Xe SMTP entry message; printed on SMTP startup
- X (Must begin with $j)
- X \s12\f(CBDe$j Sendmail $v ready at $b\fH\s10
- Xj T{
- X.na
- XOfficial domain name for this site;
- X.br
- X\s12\f(CBDj$H
- X.br
- XDj$H.$D
- XT}
- Xl T{
- X.na
- XFormat of the UNIX ``From'' line
- X.br
- X\s12\f(CBDlFrom $g $d
- XT}
- Xn T{
- X.na
- XName of the daemon for error messages
- X.br
- X\s12\f(CBDnMAILER-DAEMON
- XT}
- Xo T{
- X.na
- XSet of ``separators'' in tokens
- X.br
- X\s12\f(CBDo.:%@!^=/
- X.br
- X.ft H
- X.ps 10
- X\(em Beware! Can be dangerous!
- XT}
- X.vs +1
- X.bp
- Xq T{
- X.na
- XDefault sender name format;
- X.br
- X\f(HIMUST\fH be RFC 822 compliant!
- X.br
- X\s12\f(CBDq$g$?x ($x)$.\fH\s10
- X.br
- XInsert \f(HIFull Name\fH in parens if defined
- XT}
- X.\".br
- X.\"See \f(HBConditionals and Macros\fH, above
- X.TE
- X.Nh
- XMacros Supplied by Sendmail
- X.LP
- X.ft H
- X.br
- X\s10\f(HIReferenced\fH using \f(HI$x\fH
- X.br
- X\s10\f(HIMatched\fH if in the Left Hand Side (LHS)
- X.br
- X\s10\f(HIInserted\fH if in the Right Hand Side (RHS)
- X.br
- XLower-case letters reserved for special meanings
- X.TS
- Xlp12fCB 2 lfH .
- Xa Origination date, in ARPANET format
- Xb T{
- X.na
- XCurrent date, in ARPANET format
- XT}
- Xc T{
- X.na
- XHop count
- XT}
- Xd T{
- X.na
- XDate in UNIX (ctime) format
- XT}
- Xf T{
- X.na
- XSender (from) name
- XT}
- Xg T{
- X.na
- XSender name relative to recipient
- XT}
- Xh T{
- X.na
- XRecipient host
- XT}
- Xi T{
- X.na
- XQueue ID
- XT}
- Xm T{
- X.na
- XDomain name
- XT}
- Xp T{
- X.na
- XSendmail's process ID
- XT}
- Xr T{
- X.na
- XProtocol used
- XT}
- Xs T{
- X.na
- XSender's host name
- XT}
- Xt T{
- X.na
- XNumeric representation of current time
- XT}
- Xu T{
- X.na
- XRecipient user
- XT}
- Xv T{
- X.na
- XVersion number of sendmail
- XT}
- Xw T{
- X.na
- XHostname of this site
- XT}
- Xx T{
- X.na
- XFull name of the sender
- XT}
- Xz T{
- X.na
- XHome directory of the recipient
- XT}
- X.TE
- X.sp
- X.TS
- Xbox;
- Xc
- Xlw(3i).
- X\f(HBNOTE\fH
- XT{
- X.na
- XItems marked with \(dg,
- XYellow Pages references and
- Xany ``%''-related items apply
- Xspecifically to SUN OS-derived systems.
- XT}
- XT{
- X.na
- XPortions exerpted from
- X.HI
- XSendmail Installation and Operations Guide,
- X.H
- Xby Eric P. Allman.
- XT}
- X.TE
- X.KS
- X.Nh
- XThe Left Hand Side (LHS)
- X.br
- XMetasymbols for Substitutions
- X.LP
- X.ft H
- X.TS
- Xlp12fCB 2 lp10w(2.8i).
- X$* Match zero or more tokens
- X$+ Match one or more tokens
- X$- Match exactly one token
- X$=\s10\f(HIx\fH Match any string in class \f(HIx\fH
- X$~\s10\f(HIx\fH Any token NOT in class \f(HIx\fH
- X$%\s10\f(HIx\fH Any token in yp map $\f(HIx\fH
- X$%y Any hostname in \f(HIhosts.byname\fH
- X or \f(HI/etc/hosts\fH if not running YP
- X$!\s10\f(HIx\fP Any token NOT in yp map $\f(HIx\fH
- X$\s10\f(HIx\fP Match macro \f(HIx\fH
- X.TE
- X.KE
- X.Nh
- X.na
- XThe Right Hand Side (RHS)
- X.br
- XMetasymbols for Substitutions
- X.LP
- X.ft H
- X.\"Match 0 or more tokens; pick off first one and run ruleset 0 on it
- X.TS
- Xlp12fCB 2 lp10fH .
- X$\s10\f(HIx\fH T{
- X.na
- XExpand macro \f(HIx\fH
- XT}
- X$\s10\f(HIn\fH T{
- X.na
- XSubstitute token \f(HIn\fH from LHS;
- X.br
- XEx: $1 is first thing matched
- XT}
- X$>\s10\f(HIn\fH Remainder of line is processed
- X & passed to ruleset \f(HIn\fH
- X$@ T{
- X.na
- XReturn result of this action;
- Xonly at the beginning of the line
- XT}
- X$@\s10\f(HIhost\fH T{
- X.na
- XSpecify \s10\f(HIhost\fH*
- X.br
- X(+prefix? ruleset return)
- XT}
- X$#\s10\f(HImailer\fH T{
- X.na
- XResolve to \s10\f(HImailer\fH*
- X.br
- X(Only to be used in ruleset 0)
- XT}
- X$: T{
- X.na
- XApply this action exactly once
- X.br
- X\(em DON'T iterate
- X.br
- XOnly at beginning of the line
- XT}
- X$:\s10\f(HIuser\fH T{
- X.na
- XSpecify \s10\f(HIuser\fH*
- X.br
- X(+prefix rule limit)
- XT}
- X$[\s10\f(HIhost\fP\s12$] T{
- X.na
- XMap to primary hostname
- XT}
- X${\s10\f(HIx name\s12\f(CB$} T{
- X.na
- XMap \s10\f(HIname\fP through yp map $\f(HIx\fH
- XT}
- X.TE
- X* Realistically, a 3-tuple:
- X.br
- X\s12\f(CB$#\s10\f(HImailer\s12\fP$@\s10\f(HIhost\s12\fP$:\f(HI\s10user\s12\fP\fH\s0
- X.LP
- X.sp
- X.ps 8
- X.vs 10
- X.nr PS 8
- X.nr VS 10
- X.ft H
- X\(co 1989 by Jim Joyce, all rights reserved
- X.br
- XPermission is hereby granted to reproduce this material
- Xso long as this copyright notice is printed legibly and intact.
- XThe Gawain Group, 139 Noe St, SF 94114
- X+1-415/626-7581
- EOF
- chars=`wc -c < 'sendmail.ms'`
- if test $chars != 12483; then echo 'sendmail.ms' is $chars characters, should be 12483 characters!; fi
- fi
- exit 0
-
-
-