1.\" Copyright (c) 1988, 1991 The Regents of the University of California.
2.\" All rights reserved.
3.\"
4.\" %sccs.include.redist.man%
5.\"
6.\"     @(#)sendmail.8	6.5 (Berkeley) 03/16/91
7.\"
8.Dd
9.Dt SENDMAIL 8
10.Os BSD 4
11.Sh NAME
12.Nm sendmail
13.Nd send mail over the internet
14.Sh SYNOPSIS
15.Nm sendmail
16.Op Ar flags
17.Op Ar address ...
18.Nm newaliases
19.Nm mailq
20.Op Fl v
21.Sh DESCRIPTION
22.Nm Sendmail
23sends a message to one or more
24.Em recipients ,
25routing the message over whatever networks
26are necessary.
27.Nm Sendmail
28does internetwork forwarding as necessary
29to deliver the message to the correct place.
30.Pp
31.Nm Sendmail
32is not intended as a user interface routine;
33other programs provide user-friendly
34front ends;
35.Nm sendmail
36is used only to deliver pre-formatted messages.
37.Pp
38With no flags,
39.Nm sendmail
40reads its standard input
41up to an end-of-file
42or a line consisting only of a single dot
43and sends a copy of the message found there
44to all of the addresses listed.
45It determines the network(s) to use
46based on the syntax and contents of the addresses.
47.Pp
48Local addresses are looked up in a file
49and aliased appropriately.
50Aliasing can be prevented by preceding the address
51with a backslash.
52Normally the sender is not included in any alias
53expansions, e.g.,
54if `john' sends to `group',
55and `group' includes `john' in the expansion,
56then the letter will not be delivered to `john'.
57.Pp
58Flags are:
59.Bl -tag -width Fl
60.It Fl ba
61Go into
62.Tn ARPANET
63mode.
64All input lines must end with a CR-LF,
65and all messages will be generated with a CR-LF at the end.
66Also,
67the ``From:'' and ``Sender:''
68fields are examined for the name of the sender.
69.It Fl bd
70Run as a daemon.  This requires Berkeley
71.Tn IPC .
72.Nm Sendmail
73will fork and run in background
74listening on socket 25 for incoming
75.Tn SMTP
76connections.
77This is normally run from
78.Pa /etc/rc .
79.It Fl bi
80Initialize the alias database.
81.It Fl bm
82Deliver mail in the usual way (default).
83.It Fl bp
84Print a listing of the queue.
85.It Fl bs
86Use the
87.Tn SMTP
88protocol as described in
89.Tn RFC821
90on standard input and output.
91This flag implies all the operations of the
92.Fl ba
93flag that are compatible with
94.Tn SMTP .
95.It Fl bt
96Run in address test mode.
97This mode reads addresses and shows the steps in parsing;
98it is used for debugging configuration tables.
99.It Fl bv
100Verify names only \- do not try to collect or deliver a message.
101Verify mode is normally used for validating
102users or mailing lists.
103.It Fl bz
104Create the configuration freeze file.
105.It Fl C Ns Ar file
106Use alternate configuration file.
107.Nm Sendmail
108refuses to run as root if an alternate configuration file is specified.
109The frozen configuration file is bypassed.
110.It Fl d Ns Ar X
111Set debugging value to
112.Ar X .
113.It Fl F Ns Ar fullname
114Set the full name of the sender.
115.It Fl f Ns Ar name
116Sets the name of the ``from'' person
117(i.e., the sender of the mail).
118.Fl f
119can only be used
120by ``trusted'' users
121(normally
122.Em root ,
123.Em daemon ,
124and
125.Em network )
126or if the person you are trying to become
127is the same as the person you are.
128.It Fl h Ns Ar N
129Set the hop count to
130.Ar N .
131The hop count is incremented every time the mail is
132processed.
133When it reaches a limit,
134the mail is returned with an error message,
135the victim of an aliasing loop.
136If not specified,
137``Received:'' lines in the message are counted.
138.It Fl n
139Don't do aliasing.
140.It Fl o Ns Ar x Em value
141Set option
142.Ar x
143to the specified
144.Em value .
145Options are described below.
146.It Fl q Ns Bq Ar time
147Processed saved messages in the queue at given intervals.
148If
149.Ar time
150is omitted,
151process the queue once.
152.Xr Time
153is given as a tagged number,
154with
155.Ql s
156being seconds,
157.Ql m
158being minutes,
159.Ql h
160being hours,
161.Ql d
162being days,
163and
164.Ql w
165being weeks.
166For example,
167.Ql \-q1h30m
168or
169.Ql \-q90m
170would both set the timeout to one hour thirty minutes.
171If
172.Ar time
173is specified,
174.Nm sendmail
175will run in background.
176This option can be used safely with
177.Fl bd .
178.It Fl r Ns Ar name
179An alternate and obsolete form of the
180.Fl f
181flag.
182.It Fl t
183Read message for recipients.
184To:, Cc:, and Bcc: lines will be scanned for recipient addresses.
185The Bcc: line will be deleted before transmission.
186Any addresses in the argument list will be suppressed,
187that is,
188they will
189.Em not
190receive copies even if listed in the message header.
191.It Fl v
192Go into verbose mode.
193Alias expansions will be announced, etc.
194.El
195.Pp
196There are also a number of processing options that may be set.
197Normally these will only be used by a system administrator.
198Options may be set either on the command line
199using the
200.Fl o
201flag
202or in the configuration file.
203These are described in detail in the
204.%T Sendmail Installation and Operation Guide.
205The options are:
206.Bl -tag -width Fl
207.It Li A Ns Ar file
208Use alternate alias file.
209.It Li c
210On mailers that are considered ``expensive'' to connect to,
211don't initiate immediate connection.
212This requires queueing.
213.It Li d Ns Ar x
214Set the delivery mode to
215.Ar x .
216Delivery modes are
217.Ql i
218for interactive (synchronous) delivery,
219.Ql b
220for background (asynchronous) delivery,
221and
222.Ql q
223for queue only \- i.e.,
224actual delivery is done the next time the queue is run.
225.It Li D
226Try to automatically rebuild the alias database
227if necessary.
228.It Li e Ns Ar x
229Set error processing to mode
230.Ar x .
231Valid modes are
232.Ql m
233to mail back the error message,
234.Ql w
235to ``write'' back the error message
236(or mail it back if the sender is not logged in),
237.Ql p
238to print the errors on the terminal
239(default),
240.Ql q
241to throw away error messages
242(only exit status is returned),
243and
244.Ql e
245to do special processing for the BerkNet.
246If the text of the message is not mailed back
247by
248modes
249.Ql m
250or
251.Ql w
252and if the sender is local to this machine,
253a copy of the message is appended to the file
254.Pa dead.letter
255in the sender's home directory.
256.It Li F Ns Ar mode
257The mode to use when creating temporary files.
258.It Li f
259Save
260.Tn UNIX Ns \-style
261From lines at the front of messages.
262.It Li g Ar N
263The default group id to use when calling mailers.
264.It Li H Ns Ar file
265The
266.Tn SMTP
267help file.
268.It Li i
269Do not take dots on a line by themselves
270as a message terminator.
271.It Li L Ns Ar n
272The log level.
273.It Li m
274Send to ``me'' (the sender) also if I am in an alias expansion.
275.It Li o
276If set, this message may have
277old style headers.
278If not set,
279this message is guaranteed to have new style headers
280(i.e., commas instead of spaces between addresses).
281If set, an adaptive algorithm is used that will correctly
282determine the header format in most cases.
283.It Li Q Ns Ar queuedir
284Select the directory in which to queue messages.
285.It Li r Ns Ar timeout
286The timeout on reads;
287if none is set,
288.Nm sendmail
289will wait forever for a mailer.
290This option violates the word (if not the intent) of the
291.Tn SMTP
292specification,
293show the timeout should probably be fairly large.
294.It Li S Ns Ar file
295Save statistics in the named file.
296.It Li s
297Always instantiate the queue file,
298even under circumstances where it is not strictly necessary.
299This provides safety against system crashes during delivery.
300.It Li T Ns Ar time
301Set the timeout on undelivered messages in the queue to the specified time.
302After delivery has failed
303(e.g., because of a host being down)
304for this amount of time,
305failed messages will be returned to the sender.
306The default is three days.
307.It Li t Ns Ar stz , Ar dtz
308Set the name of the time zone.
309.It Li u Ns Ar N
310Set the default user id for mailers.
311.El
312.Pp
313In aliases,
314the first character of a name may be
315a vertical bar to cause interpretation of
316the rest of the name as a command
317to pipe the mail to.
318It may be necessary to quote the name
319to keep
320.Nm sendmail
321from suppressing the blanks from between arguments.
322For example, a common alias is:
323.Pp
324.Bd -literal -offset indent -compact
325msgs: "|/usr/bin/msgs -s"
326.Ed
327.Pp
328Aliases may also have the syntax
329.Dq :include: Ns Ar filename
330to ask
331.Xr sendmail
332to read the named file for a list of recipients.
333For example, an alias such as:
334.Pp
335.Bd -literal -offset indent -compact
336poets: ":include:/usr/local/lib/poets.list"
337.Ed
338.Pp
339would read
340.Pa /usr/local/lib/poets.list
341for the list of addresses making up the group.
342.Pp
343.Nm Sendmail
344returns an exit status
345describing what it did.
346The codes are defined in
347.Aq Pa sysexits.h :
348.Bl -tag -width EX_UNAVAILABLE -compact -offset indent
349.It Dv EX_OK
350Successful completion on all addresses.
351.It Dv EX_NOUSER
352User name not recognized.
353.It Dv EX_UNAVAILABLE
354Catchall meaning necessary resources
355were not available.
356.It Dv EX_SYNTAX
357Syntax error in address.
358.It Dv EX_SOFTWARE
359Internal software error,
360including bad arguments.
361.It Dv EX_OSERR
362Temporary operating system error,
363such as
364.Dq cannot fork .
365.It Dv EX_NOHOST
366Host name not recognized.
367.It Dv EX_TEMPFAIL
368Message could not be sent immediately,
369but was queued.
370.El
371.Pp
372If invoked as
373.Nm newaliases ,
374.Nm sendmail
375will rebuild the alias database.
376If invoked as
377.Nm mailq ,
378.Nm sendmail
379will print the contents of the mail queue.
380.Sh FILES
381Except for the file
382.Pa /etc/sendmail.cf
383itself,
384the following pathnames are all specified in
385.Pa /etc/sendmail.cf.
386Thus,
387these values are only approximations.
388.Pp
389.Bl -tag -width /usr/lib/sendmail.fc -compact
390.It Pa /etc/aliases
391raw data for alias names
392.It Pa /etc/aliases.pag
393.It Pa /etc/aliases.dir
394data base of alias names
395.It Pa /etc/sendmail.cf
396configuration file
397.It Pa /etc/sendmail.fc
398frozen configuration
399.It Pa /etc/sendmail.hf
400help file
401.It Pa /var/log/sendmail.st
402collected statistics
403.It Pa /var/spool/mqueue/*
404temp files
405.El
406.Sh SEE ALSO
407.Xr binmail 1 ,
408.Xr mail 1 ,
409.Xr rmail 1 ,
410.Xr syslog 3 ,
411.Xr aliases 5 ,
412.Xr mailaddr 7 ,
413.Xr rc 8 ;
414.Pp
415DARPA
416Internet Request For Comments
417.%T RFC819 ,
418.%T RFC821 ,
419.%T RFC822 .
420.Rs
421.%T Sendmail \- An Internetwork Mail Router
422.%V SMM
423.%N \&No. 9
424.Re
425.Rs
426.%T Sendmail Installation and Operation Guide
427.%V SMM
428.%N \&No. 8
429.Re
430.Sh HISTORY
431The
432.Nm
433command appeared in
434.Bx 4.2 .
435