source: server/mail/sendmail.xml@ babbe4db

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since babbe4db was babbe4db, checked in by Douglas R. Reno <renodr@…>, 5 months ago

Typo fixes from rhubarbpieguy

  • Property mode set to 100644
File size: 17.0 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY sendmail-download-http "https://ftp.sendmail.org/sendmail.&sendmail-version;.tar.gz">
8 <!ENTITY sendmail-download-ftp " ">
9 <!ENTITY sendmail-md5sum "eb21e7c8a1d2a69a4597e9ce6b1cb3d5">
10 <!ENTITY sendmail-size "2.2 MB">
11 <!ENTITY sendmail-buildsize "18 MB">
12 <!ENTITY sendmail-time "0.1 SBU">
13]>
14
15<sect1 id="sendmail" xreflabel="sendmail-&sendmail-version;">
16 <?dbhtml filename="sendmail.html"?>
17
18
19 <title>sendmail-&sendmail-version;</title>
20
21 <indexterm zone="sendmail">
22 <primary sortas="a-sendmail">sendmail</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to sendmail</title>
27
28 <para>
29 The <application>sendmail</application> package contains a Mail
30 Transport Agent (MTA).
31 </para>
32
33 &lfs120_checked;
34
35 <bridgehead renderas="sect3">Package Information</bridgehead>
36 <itemizedlist spacing="compact">
37 <listitem>
38 <para>
39 Download (HTTP): <ulink url="&sendmail-download-http;"/>
40 </para>
41 </listitem>
42 <listitem>
43 <para>
44 Download (FTP): <ulink url="&sendmail-download-ftp;"/>
45 </para>
46 </listitem>
47 <listitem>
48 <para>
49 Download MD5 sum: &sendmail-md5sum;
50 </para>
51 </listitem>
52 <listitem>
53 <para>
54 Download size: &sendmail-size;
55 </para>
56 </listitem>
57 <listitem>
58 <para>
59 Estimated disk space required: &sendmail-buildsize;
60 </para>
61 </listitem>
62 <listitem>
63 <para>
64 Estimated build time: &sendmail-time;
65 </para>
66 </listitem>
67 </itemizedlist>
68
69<!-- Sendmail 8.16.1 does have official support for OpenSSL 1.1
70 <itemizedlist spacing="compact">
71 <listitem>
72 <para>
73 Required patch:
74 <ulink url="&patch-root;/sendmail.&sendmail-version;-openssl-1.patch"/>
75 </para>
76 </listitem>
77 </itemizedlist>
78-->
79
80 <bridgehead renderas="sect3">sendmail Dependencies</bridgehead>
81
82 <bridgehead renderas="sect4">Required</bridgehead>
83 <para role="required">
84 <xref linkend="openldap"/> (client)
85 </para>
86
87 <bridgehead renderas="sect4">Recommended</bridgehead>
88 <para role="recommended">
89 <xref linkend="cyrus-sasl"/>
90 </para>
91
92 <bridgehead renderas="sect4">Optional</bridgehead>
93 <para role="optional">
94 <xref linkend="gs"/> (for creating PDF documentation),
95 <xref linkend="procmail"/> (the configuration proposed below requires
96 that <command>procmail</command> be present at run-time), and
97 <ulink url="https://github.com/chaos/nph">nph</ulink>
98 </para>
99
100 <para condition="html" role="usernotes">Editor Notes:
101 <ulink url="&blfs-wiki;/sendmail"/></para>
102
103 </sect2>
104
105 <sect2 role="installation">
106 <title>Installation of sendmail</title>
107
108 <para>
109 Before building <application>sendmail</application>, create the
110 required user, group and directory with the following commands issued as
111 the <systemitem class="username">root</systemitem> user:
112 </para>
113
114<screen role="root"><userinput>groupadd -g 26 smmsp &amp;&amp;
115useradd -c "Sendmail Daemon" -g smmsp -d /dev/null \
116 -s /bin/false -u 26 smmsp &amp;&amp;
117chmod -v 1777 /var/mail &amp;&amp;
118install -v -m700 -d /var/spool/mqueue</userinput></screen>
119
120 <note>
121 <para>
122 See the source tree <filename>sendmail/README</filename> file
123 for information on linking optional packages into the build. Use the
124 example below, which adds support for SASL, StartTLS
125 (<application>OpenSSL</application>) and
126 <application>OpenLDAP</application>, as a starting point. Of course,
127 modify it to suit your particular needs.
128 </para>
129 </note>
130
131<screen><userinput>cat &gt;&gt; devtools/Site/site.config.m4 &lt;&lt; "EOF"
132<literal>APPENDDEF(`confENVDEF',`-DSTARTTLS -DSASL -DLDAPMAP -DHASFLOCK')
133APPENDDEF(`confLIBS', `-lssl -lcrypto -lsasl2 -lldap -llber')
134APPENDDEF(`confINCDIRS', `-I/usr/include/sasl')</literal>
135EOF</userinput></screen>
136
137 <para>
138 Install <application>sendmail</application> with the following commands:
139 </para>
140
141<screen><userinput>cat &gt;&gt; devtools/Site/site.config.m4 &lt;&lt; "EOF"
142<literal>define(`confMANGRP',`root')
143define(`confMANOWN',`root')
144define(`confSBINGRP',`root')
145define(`confUBINGRP',`root')
146define(`confUBINOWN',`root')</literal>
147EOF
148
149sed -i 's|/usr/man/man|/usr/share/man/man|' \
150 devtools/OS/Linux &amp;&amp;
151
152cd sendmail &amp;&amp;
153sh Build &amp;&amp;
154cd ../cf/cf &amp;&amp;
155cp generic-linux.mc sendmail.mc &amp;&amp;
156sh Build sendmail.cf</userinput></screen>
157
158 <para>
159 This package does not come with a test suite.
160 </para>
161
162<!-- When doing a DESTDIR= build, for example, for an update to check for new
163 installed files, you need to create $DEST/usr/{bin,sbin,share/man/man{1,5,8}
164 first. "sh Build" is a wrapper for Make, so it will accept DESTDIR=
165 as an argument. -->
166 <para>
167 Now, as the <systemitem class="username">root</systemitem> user:
168 </para>
169
170<screen role="root"><userinput>install -v -d -m755 /etc/mail &amp;&amp;
171sh Build install-cf &amp;&amp;
172
173cd ../.. &amp;&amp;
174sh Build install &amp;&amp;
175
176install -v -m644 cf/cf/{submit,sendmail}.mc /etc/mail &amp;&amp;
177cp -v -R cf/* /etc/mail &amp;&amp;
178
179install -v -m755 -d /usr/share/doc/sendmail-&sendmail-version;/{cf,sendmail} &amp;&amp;
180
181install -v -m644 CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \
182 /usr/share/doc/sendmail-&sendmail-version; &amp;&amp;
183
184install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \
185 /usr/share/doc/sendmail-&sendmail-version;/sendmail &amp;&amp;
186
187install -v -m644 cf/README /usr/share/doc/sendmail-&sendmail-version;/cf &amp;&amp;
188
189for manpage in sendmail editmap mailstats makemap praliases smrsh
190do
191 install -v -m644 $manpage/$manpage.8 /usr/share/man/man8
192done &amp;&amp;
193
194install -v -m644 sendmail/aliases.5 /usr/share/man/man5 &amp;&amp;
195install -v -m644 sendmail/mailq.1 /usr/share/man/man1 &amp;&amp;
196install -v -m644 sendmail/newaliases.1 /usr/share/man/man1 &amp;&amp;
197install -v -m644 vacation/vacation.1 /usr/share/man/man1</userinput></screen>
198
199 <para>
200 Install the <application>sendmail</application> Installation and
201 Operations Guide with the following commands:
202 </para>
203
204 <note>
205 <para>
206 Remove <filename>op.pdf</filename> from the <command>make</command>
207 and <command>install</command> commands below if
208 you don't have <application>Ghostscript</application> installed.
209 </para>
210 </note>
211
212<screen remap="doc"><userinput>cd doc/op &amp;&amp;
213sed -i 's/groff/GROFF_NO_SGR=1 groff/' Makefile &amp;&amp;
214make op.txt op.pdf</userinput></screen>
215
216 <para>
217 Now, as the <systemitem class="username">root</systemitem> user:
218 </para>
219
220<screen role="root"
221 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/sendmail-&sendmail-version; &amp;&amp;
222install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-&sendmail-version; &amp;&amp;
223cd ../..</userinput></screen>
224
225 </sect2>
226
227 <sect2 role="commands">
228 <title>Command Explanations</title>
229
230 <para>
231 <command>cat &gt; devtools/Site/site.config.m4 &lt;&lt; "EOF"</command>:
232 This creates a configuration file changing some of the default settings.
233 </para>
234
235 <para>
236 <command>sed ... devtools/OS/Linux</command>: The site.config.m4
237 does not honor a change to the man directory, so fix it in the OS
238 definitions.
239 </para>
240
241<!-- No longer valid with 8.16.1
242 <para>
243 <command>sed ... include/sm/bdb.h</command>: This allows sendmail to
244 build properly with <xref linkend='db'/> versions 5 and above.
245 </para>
246-->
247
248 <para>
249 <command>sh Build; sh Build sendmail.cf; sh Build install-cf;
250 sh Build install</command>: <application>sendmail</application> uses an
251 <application>m4</application> based build script to create the various
252 <filename>Makefile</filename>s. These commands build and install the
253 package.
254 </para>
255
256 <para>
257 <command>for manpage in...;do...;done; install ...</command>: The man
258 pages are installed already formatted and <command>man</command> displays
259 them somewhat garbled. These commands replace the formatted pages with
260 pages <command>man</command> can display properly.
261 </para>
262
263 </sect2>
264
265 <sect2 role="configuration">
266 <title>Configuring sendmail</title>
267
268 <sect3 id="sendmail-config">
269 <title>Config Files</title>
270
271 <para>
272 <filename>/etc/mail/*</filename>
273 </para>
274
275 <indexterm zone="sendmail sendmail-config">
276 <primary sortas="e-etc-mail">/etc/mail/*</primary>
277 </indexterm>
278
279 </sect3>
280
281 <sect3>
282 <title>Configuration Information</title>
283
284 <note>
285 <para>
286 Ensure you have a fully qualified domain name defined
287 in <filename>/etc/hosts</filename> for your system before proceeding.
288 </para>
289 </note>
290
291 <para>
292 Create the <filename>/etc/mail/local-host-names</filename> and
293 <filename>/etc/mail/aliases</filename> files using the following
294 commands as the <systemitem class="username">root</systemitem> user:
295 </para>
296
297<screen role="root"><userinput>echo $(hostname) > /etc/mail/local-host-names
298cat &gt; /etc/mail/aliases &lt;&lt; "EOF"
299<literal>postmaster: root
300MAILER-DAEMON: root</literal>
301
302EOF
303# Does not work if there is no database backend compiled in:
304#newaliases</userinput></screen>
305
306 <para>
307 <application>sendmail</application>'s primary configuration file,
308 <filename>/etc/mail/sendmail.cf</filename>, is complex and not meant to
309 be directly edited. The recommended method for changing it is to modify
310 <filename>/etc/mail/sendmail.mc</filename> and various
311 <application>m4</application> files, then run the <command>m4</command>
312 macro processor from within
313 <filename class='directory'>/etc/mail</filename> as follows:
314 </para>
315
316<screen role="root"><userinput>cd /etc/mail &amp;&amp;
317m4 m4/cf.m4 sendmail.mc > sendmail.cf</userinput></screen>
318
319 <para>
320 A full explanation of the files to modify, and the available
321 parameters can be found in <filename>/etc/mail/README</filename>.
322 </para>
323
324 </sect3>
325
326 <sect3 id="sendmail-init">
327 <title><phrase revision="sysv">Boot Script</phrase>
328 <phrase revision="systemd">Systemd Unit</phrase></title>
329
330 <para>
331 To automate the running of <application>sendmail</application>
332 at startup, install the
333 <phrase revision="sysv"><filename>/etc/rc.d/init.d/sendmail</filename>
334 init script</phrase>
335 <phrase revision="systemd"><filename>sendmail.service</filename>
336 unit</phrase> included in the
337 <xref linkend="bootscripts" revision="sysv"/>
338 <xref linkend="systemd-units" revision="systemd"/> package:
339 </para>
340
341 <indexterm zone="sendmail sendmail-init">
342 <primary sortas="f-sendmail-init">sendmail</primary>
343 </indexterm>
344
345<screen role="root"><userinput>make install-sendmail</userinput></screen>
346
347 <note>
348 <para>
349 The -qNm option to <command>sendmail</command>, where N is number
350 of minutes, controls how often <application>sendmail</application>
351 will process the mail queue. A default of 5 minutes is used in the
352 <phrase revision="sysv">init script.</phrase>
353 <phrase revision="systemd">systemd unit.</phrase> Individual
354 workstation users may want to set this as low as 1 minute, large
355 installations handling more mail may want to set it higher.
356 </para>
357 </note>
358
359 </sect3>
360
361 </sect2>
362
363 <sect2 role="content">
364 <title>Contents</title>
365
366 <segmentedlist>
367 <segtitle>Installed Programs</segtitle>
368 <segtitle>Installed Libraries</segtitle>
369 <segtitle>Installed Directories</segtitle>
370
371 <seglistitem>
372 <seg>editmap, mailstats, makemap, praliases, sendmail, smrsh,
373 and vacation; symlinks to /usr/sbin/sendmail: hoststat, mailq,
374 newaliases, and purgestat</seg>
375 <seg>None</seg>
376 <seg>/etc/mail, /usr/share/doc/sendmail-&sendmail-version;,
377 and /var/spool/clientmqueue</seg>
378 </seglistitem>
379 </segmentedlist>
380
381 <variablelist>
382 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
383 <?dbfo list-presentation="list"?>
384 <?dbhtml list-presentation="table"?>
385
386 <varlistentry id="editmap">
387 <term><command>editmap</command></term>
388 <listitem>
389 <para>
390 queries and edits <application>sendmail</application> map files
391 </para>
392 <indexterm zone="sendmail editmap">
393 <primary sortas="b-editmap">editmap</primary>
394 </indexterm>
395 </listitem>
396 </varlistentry>
397
398 <varlistentry id="hoststat">
399 <term><command>hoststat</command></term>
400 <listitem>
401 <para>
402 prints <application>sendmail</application>'s persistent host status
403 </para>
404 <indexterm zone="sendmail hoststat">
405 <primary sortas="b-hoststat">hoststat</primary>
406 </indexterm>
407 </listitem>
408 </varlistentry>
409
410 <varlistentry id="mailstats">
411 <term><command>mailstats</command></term>
412 <listitem>
413 <para>
414 displays <application>sendmail</application> statistics
415 </para>
416 <indexterm zone="sendmail mailstats">
417 <primary sortas="b-mailstats">mailstats</primary>
418 </indexterm>
419 </listitem>
420 </varlistentry>
421
422 <varlistentry id="mailq-sendmail">
423 <term><command>mailq</command></term>
424 <listitem>
425 <para>
426 prints a summary of outbound mail messages waiting for delivery
427 </para>
428 <indexterm zone="sendmail mailq-sendmail">
429 <primary sortas="b-mailq">mailq</primary>
430 </indexterm>
431 </listitem>
432 </varlistentry>
433
434 <varlistentry id="makemap">
435 <term><command>makemap</command></term>
436 <listitem>
437 <para>
438 creates <application>sendmail</application> map files
439 </para>
440 <indexterm zone="sendmail makemap">
441 <primary sortas="b-makemap">makemap</primary>
442 </indexterm>
443 </listitem>
444 </varlistentry>
445
446 <varlistentry id="newaliases-sendmail">
447 <term><command>newaliases</command></term>
448 <listitem>
449 <para>
450 rebuilds <filename>/etc/mail/aliases.db</filename> from the
451 contents of <filename>/etc/mail/aliases</filename>
452 </para>
453 <indexterm zone="sendmail newaliases-sendmail">
454 <primary sortas="b-newaliases">newaliases</primary>
455 </indexterm>
456 </listitem>
457 </varlistentry>
458
459 <varlistentry id="praliases">
460 <term><command>praliases</command></term>
461 <listitem>
462 <para>
463 displays current <application>sendmail</application> aliases
464 </para>
465 <indexterm zone="sendmail praliases">
466 <primary sortas="b-praliases">praliases</primary>
467 </indexterm>
468 </listitem>
469 </varlistentry>
470
471 <varlistentry id="purgestat">
472 <term><command>purgestat</command></term>
473 <listitem>
474 <para>
475 causes <application>sendmail</application> to clear (purge)
476 all its host-status information
477 </para>
478 <indexterm zone="sendmail purgestat">
479 <primary sortas="b-purgestat">purgestat</primary>
480 </indexterm>
481 </listitem>
482 </varlistentry>
483
484 <varlistentry id="sendmail-prog-sendmail">
485 <term><command>sendmail</command></term>
486 <listitem>
487 <para>
488 is the <application>sendmail</application> mail transport agent
489 </para>
490 <indexterm zone="sendmail sendmail-prog-sendmail">
491 <primary sortas="b-sendmail">sendmail</primary>
492 </indexterm>
493 </listitem>
494 </varlistentry>
495
496 <varlistentry id="smrsh">
497 <term><command>smrsh</command></term>
498 <listitem>
499 <para>
500 is a restricted shell for <application>sendmail</application>
501 </para>
502 <indexterm zone="sendmail smrsh">
503 <primary sortas="b-smrsh">smrsh</primary>
504 </indexterm>
505 </listitem>
506 </varlistentry>
507
508 <varlistentry id="vacation-sendmail">
509 <term><command>vacation</command></term>
510 <listitem>
511 <para>
512 is an email auto responder
513 </para>
514 <indexterm zone="sendmail vacation-sendmail">
515 <primary sortas="b-vacation">vacation</primary>
516 </indexterm>
517 </listitem>
518 </varlistentry>
519
520 </variablelist>
521
522 </sect2>
523
524</sect1>
Note: See TracBrowser for help on using the repository browser.