source: server/mail/postfix.xml@ 5d9021ea

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 5d9021ea was 5d9021ea, checked in by Ken Moffat <ken@…>, 11 years ago

more tags

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@11663 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 20.5 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 postfix-download-http " ">
8 <!ENTITY postfix-download-ftp
9 "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-&postfix-version;.tar.gz">
10 <!ENTITY postfix-md5sum "209e81079325b6758a7dcf531a0d5f7a">
11 <!ENTITY postfix-size "3.7 MB">
12 <!ENTITY postfix-buildsize "199 MB">
13 <!ENTITY postfix-time "0.4 SBU">
14]>
15
16<sect1 id="postfix" xreflabel="Postfix-&postfix-version;">
17 <?dbhtml filename="postfix.html"?>
18
19 <sect1info>
20 <othername>$LastChangedBy$</othername>
21 <date>$Date$</date>
22 </sect1info>
23
24 <title>Postfix-&postfix-version;</title>
25
26 <indexterm zone="postfix">
27 <primary sortas="a-Postfix">Postfix</primary>
28 </indexterm>
29
30 <sect2 role="package">
31 <title>Introduction to Postfix</title>
32
33 <para>
34 The <application>Postfix</application> package contains a Mail Transport
35 Agent (MTA). This is useful for sending email to other users of your host
36 machine. It can also be configured to be a central mail server for your
37 domain, a mail relay agent or simply a mail delivery agent to your local
38 Internet Service Provider.
39 </para>
40
41 &lfs74_checked;
42
43 <bridgehead renderas="sect3">Package Information</bridgehead>
44 <itemizedlist spacing="compact">
45 <listitem>
46 <para>
47 Download (HTTP): <ulink url="&postfix-download-http;"/>
48 </para>
49 </listitem>
50 <listitem>
51 <para>
52 Download (FTP): <ulink url="&postfix-download-ftp;"/>
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download MD5 sum: &postfix-md5sum;
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download size: &postfix-size;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Estimated disk space required: &postfix-buildsize;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Estimated build time: &postfix-time;
73 </para>
74 </listitem>
75 </itemizedlist>
76
77 <bridgehead renderas="sect3">Postfix Dependencies</bridgehead>
78
79 <bridgehead renderas="sect4">Required</bridgehead>
80 <para role="required">
81 <xref linkend="db"/>
82 </para>
83
84 <bridgehead renderas="sect4">Recommended</bridgehead>
85 <para role="recommended">
86 <xref linkend="cyrus-sasl"/> and
87 <xref linkend="openssl"/>
88 </para>
89
90 <bridgehead renderas="sect4">Optional</bridgehead>
91 <para role="optional">
92 <xref linkend="mysql"/>,
93 <xref linkend="openldap"/>,
94 <xref linkend="pcre"/>,
95 <xref linkend="postgresql"/>,
96 <xref linkend="sqlite"/>, and
97 <ulink url="http://cr.yp.to/cdb.html">CDB</ulink> or
98 <ulink url="http://www.corpit.ru/mjt/tinycdb.html">TinyCDB</ulink>
99 </para>
100
101 <para>
102 Note that <application>SQLite</application>,
103 <application>MySQL</application>, <application>PostgreSQL</application>
104 and <application>CDB</application> are only useful if there is a known
105 need for them.
106 </para>
107
108 <para condition="html" role="usernotes">
109 User Notes: <ulink url="&blfs-wiki;/postfix"/>
110 </para>
111 </sect2>
112
113 <sect2 role="installation">
114 <title>Installation of Postfix</title>
115
116 <sect3>
117 <title>Adding Users and Groups</title>
118
119 <para>
120 Before you compile the program, you need to create users and groups that
121 will be expected to be in place during the installation. Add the users
122 and groups with the following commands issued by the
123 <systemitem class="username">root</systemitem> user:
124 </para>
125
126<screen role="root"><userinput>groupadd -g 32 postfix &amp;&amp;
127groupadd -g 33 postdrop &amp;&amp;
128useradd -c "Postfix Daemon User" -d /var/spool/postfix -g postfix \
129 -s /bin/false -u 32 postfix &amp;&amp;
130chown -v postfix:postfix /var/mail</userinput></screen>
131 </sect3>
132
133 <sect3>
134 <title>Configuring the Build</title>
135
136 <para>
137 Run the following command to enable <application>Postfix</application>
138 to compile against the current version of
139 <application>BerkeleyDB</application>:
140 </para>
141
142<screen><userinput>sed "s:DB_VERSION_MAJOR == 5:DB_VERSION_MAJOR == 6 || &amp;:" -i \
143 src/util/dict_db.c</userinput></screen>
144
145 <para>
146 The README files are formatted to be read with a pager like
147 <application>Less</application> or <application>More</application>.
148 If you want to read them in a text editor, make them legible with a sed:
149 </para>
150
151<screen><userinput>sed -i 's/.\x08//g' README_FILES/*</userinput></screen>
152
153 <para>
154 The <application>Postfix</application> source tree does not contain a
155 <filename>configure</filename> script, rather the makefile in the
156 top-level directory contains a <option>makefiles</option> target that
157 regenerates all the other makefiles in the build tree. If you wish to
158 use additional software such as a database back-end for virtual users,
159 or TLS/SSL authentication, you will need to regenerate the makefiles
160 using one or more of the appropriate <envar>CCARGS</envar> and
161 <envar>AUXLIBS</envar> settings listed below.
162 </para>
163
164 <para>
165 For more details read the readme files.
166 </para>
167
168 <sect4>
169 <title>Cyrus-SASL</title>
170
171 <para>
172 To use <application>Cyrus-SASL</application> with
173 <application>Postfix</application>, use the following arguments:
174 </para>
175
176<screen><literal>CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl'
177AUXLIBS='-lsasl2'</literal></screen>
178
179 </sect4>
180
181 <sect4>
182 <title>OpenLDAP</title>
183
184 <para>
185 To use <application>OpenLDAP</application> with
186 <application>Postfix</application>, use the following arguments:
187 </para>
188
189<screen><literal>CCARGS='-DHAS_LDAP'
190AUXLIBS='-lldap -llber'</literal></screen>
191
192 </sect4>
193
194 <sect4>
195 <title>Sqlite</title>
196
197 <para>
198 To use <application>Sqlite</application> with
199 <application>Postfix</application>, use the following arguments:
200 </para>
201
202<screen><literal>CCARGS='-DHAS_SQLITE'
203AUXLIBS='-lsqlite3 -lpthread'</literal></screen>
204
205 </sect4>
206
207 <sect4>
208 <title>MySQL</title>
209
210 <para>
211 To use <application>MySQL</application> with
212 <application>Postfix</application>, use the following arguments:
213 </para>
214
215<screen><literal>CCARGS='-DHAS_MYSQL -I/usr/include/mysql'
216AUXLIBS='-lmysqlclient -lz -lm'</literal></screen>
217
218 </sect4>
219
220 <sect4>
221 <title>PostgreSQL</title>
222
223 <para>
224 To use <application>PostgreSQL</application> with
225 <application>Postfix</application>, use the following arguments:
226 </para>
227
228<screen><literal>CCARGS='-DHAS_PGSQL -I/usr/include/postgresql'
229AUXLIBS='-lpq -lz -lm'</literal></screen>
230
231 </sect4>
232
233 <sect4>
234 <title>CDB/TinyCDB</title>
235
236 <para>
237 To use <application>CDB</application> or
238 <application>TinyCDB</application> with
239 <application>Postfix</application>, use the following arguments:
240 </para>
241
242<screen><literal>CCARGS='-DHAS_CDB'
243AUXLIBS='<replaceable>&lt;/path/to/CDB&gt;</replaceable>/libcdb.a'</literal></screen>
244
245 </sect4>
246
247 <sect4>
248 <title>StartTLS Authentication</title>
249
250 <para>
251 To use <application>OpenSSL</application> with
252 <application>Postfix</application>, use the following arguments:
253 </para>
254
255<screen><literal>CCARGS='-DUSE_TLS -I/usr/include/openssl/'
256AUXLIBS='-lssl -lcrypto'</literal></screen>
257 </sect4>
258
259 </sect3>
260
261 <sect3>
262 <title>Installing Postfix</title>
263
264 <para>
265 If you have <application>Cyrus SASL</application> and
266 <application>OpenSSL</application> installed, install
267 <application>Postfix</application> by running the following commands:
268 </para>
269
270<screen><userinput>make CCARGS="-DNO_NIS -DUSE_TLS -I/usr/include/openssl/ \
271 -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" \
272 AUXLIBS="-lssl -lcrypto -lsasl2" \
273 makefiles &amp;&amp;
274make</userinput></screen>
275
276 <!-- There is a testsuite, but it fails a lot. It seems to need
277 the host to be specifically setup for the tests.
278 Run with `make tests' and `make root_tests' -->
279 <para>
280 This package does not come with a useful test suite.
281 </para>
282
283 <para>
284 Now, as the <systemitem class="username">root</systemitem> user:
285 </para>
286
287<screen role="root"><userinput>sh postfix-install -non-interactive \
288 daemon_directory=/usr/lib/postfix \
289 manpage_directory=/usr/share/man \
290 html_directory=/usr/share/doc/postfix-&postfix-version;/html \
291 readme_directory=/usr/share/doc/postfix-&postfix-version;/readme</userinput></screen>
292
293 </sect3>
294
295 </sect2>
296
297 <sect2 role="commands">
298 <title>Command Explanations</title>
299
300 <para>
301 <command>make makefiles</command>: This command rebuilds the makefiles
302 throughout the source tree to use the options contained in the
303 <envar>CCARGS</envar> and <envar>AUXLIBS</envar> variables.
304 </para>
305
306 <para>
307 <parameter>-DNO_NIS</parameter>: This option disables building Network
308 Information Service/Yellow Pages support. The RPC implementation in Glibc
309 (on which NIS/YP depends) is deprecated.
310 </para>
311
312 <para>
313 <command>sh postfix-install -non-interactive</command>: This keeps the
314 install script from asking any questions, thereby accepting default
315 destination directories in all but the few cases. If the
316 <option>html_directory</option> and <option>readme_directory</option>
317 options are not set then the documentation will not be installed.
318 </para>
319
320 </sect2>
321
322 <sect2 role="configuration">
323 <title>Configuring Postfix</title>
324
325 <sect3 id="postfix-config">
326 <title>Config Files</title>
327
328 <para>
329 <filename>/etc/aliases</filename>,
330 <filename>/etc/postfix/main.cf</filename>, and
331 <filename>/etc/postfix/master.cf</filename>
332 </para>
333
334 <indexterm zone="postfix postfix-config">
335 <primary sortas="e-etc-aliases">/etc/aliases</primary>
336 </indexterm>
337
338 <indexterm zone="postfix postfix-config">
339 <primary sortas="e-etc-postfix-star">/etc/postfix/*</primary>
340 </indexterm>
341
342 </sect3>
343
344 <sect3>
345 <title>Configuration Information</title>
346
347 <para>
348 Create (or append to an existing) <filename>/etc/aliases</filename>
349 with the following command. Change
350 <replaceable>&lt;LOGIN&gt;</replaceable> for your non-root login
351 identity so mail addressed to
352 <systemitem class="username">root</systemitem> can be forwarded to you.
353 As the <systemitem class="username">root</systemitem> user:
354 </para>
355
356<screen role="root"><userinput>cat &gt;&gt; /etc/aliases &lt;&lt; "EOF"
357<literal># Begin /etc/aliases
358
359MAILER-DAEMON: postmaster
360postmaster: root
361
362root: <replaceable>&lt;LOGIN&gt;</replaceable>
363# End /etc/aliases</literal>
364EOF</userinput></screen>
365
366 <para>
367 To protect an existing <filename>/etc/aliases</filename> file,
368 the above command appends these aliases to it if it exists. This file
369 should be checked and duplicate aliases removed, if present.
370 </para>
371
372 <note>
373 <para>
374 The <filename>/etc/postfix/main.cf</filename> and
375 <filename>/etc/postfix/master.cf</filename> files must be personalized
376 for your system. The <filename>main.cf</filename> file needs your
377 fully qualified hostname. You will find that
378 <filename>main.cf</filename> is self documenting, so load it into your
379 editor to make the changes you need for your situation.
380 </para>
381 </note>
382
383 <note>
384 <para>
385 <application>Postfix</application> can also be set up to
386 run in a chroot jail. See the file in the source
387 <filename>examples/chroot-setup/LINUX2</filename> for details.
388 </para>
389 </note>
390
391 <para>
392 If you have an existing configuration, you can run the
393 <command>postfix</command> utility to add any necessary definitions to
394 your existing files. As the
395 <systemitem class="username">root</systemitem> user:
396 </para>
397
398<screen role="root"><userinput>/usr/sbin/postfix upgrade-configuration</userinput></screen>
399
400 <para>
401 Before starting <application>Postfix</application>, you should check
402 that your configuration and file permissions will work properly. Run the
403 following commands as the <systemitem class="username">root</systemitem>
404 user to check and start your <application>Postfix</application> server:
405 </para>
406
407<screen role="root"><userinput>/usr/sbin/postfix check &amp;&amp;
408/usr/sbin/postfix start</userinput></screen>
409
410 </sect3>
411
412 <sect3 id="postfix-init">
413 <title>Boot Script</title>
414
415 <para>
416 To automate the running of Postfix at startup, install the
417 <filename>/etc/rc.d/init.d/postfix</filename> init script included in
418 the <xref linkend="bootscripts"/> package.
419 </para>
420
421 <indexterm zone="postfix postfix-init">
422 <primary sortas="f-postfix">postfix</primary>
423 </indexterm>
424
425<screen role="root"><userinput>make install-postfix</userinput></screen>
426
427 </sect3>
428
429 </sect2>
430
431 <sect2 role="content">
432 <title>Contents</title>
433
434 <segmentedlist>
435 <segtitle>Installed Programs</segtitle>
436 <segtitle>Installed Libraries</segtitle>
437 <segtitle>Installed Directories</segtitle>
438
439 <seglistitem>
440 <seg>
441 mailq, newaliases, postaliases, postcat, postconf, postdrop, postfix,
442 postkick, postlock, postlog, postmap, postmulti, postqueue, postsuper,
443 and sendmail
444 </seg>
445 <seg>
446 None
447 </seg>
448 <seg>
449 /etc/postfix,
450 /usr/lib/postfix,
451 /usr/share/doc/postfix-&postfix-version;,
452 /var/lib/postfix, and
453 /var/spool/postfix
454 </seg>
455 </seglistitem>
456 </segmentedlist>
457
458 <variablelist>
459 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
460 <?dbfo list-presentation="list"?>
461 <?dbhtml list-presentation="table"?>
462
463 <varlistentry id="mailq">
464 <term><command>mailq</command></term>
465 <listitem>
466 <para>
467 A symlink to <filename>sendmail</filename>.
468 </para>
469 <indexterm zone="postfix mailq">
470 <primary sortas="b-mailq">mailq</primary>
471 </indexterm>
472 </listitem>
473 </varlistentry>
474
475 <varlistentry id="newaliases">
476 <term><command>newaliases</command></term>
477 <listitem>
478 <para>
479 A symlink to <filename>sendmail</filename>.
480 </para>
481 <indexterm zone="postfix newaliases">
482 <primary sortas="b-newaliases">newaliases</primary>
483 </indexterm>
484 </listitem>
485 </varlistentry>
486
487 <varlistentry id="postaliases">
488 <term><command>postaliases</command></term>
489 <listitem>
490 <para>
491 is a utility for <application>Postfix</application> alias database
492 maintenance
493 </para>
494 <indexterm zone="postfix postaliases">
495 <primary sortas="b-postaliases">postaliases</primary>
496 </indexterm>
497 </listitem>
498 </varlistentry>
499
500 <varlistentry id="postcat">
501 <term><command>postcat</command></term>
502 <listitem>
503 <para>
504 Prints the contents of files from the
505 <application>Postfix</application> queue in human readable format.
506 </para>
507 <indexterm zone="postfix postcat">
508 <primary sortas="b-postcat">postcat</primary>
509 </indexterm>
510 </listitem>
511 </varlistentry>
512
513 <varlistentry id="postconf">
514 <term><command>postconf</command></term>
515 <listitem>
516 <para>
517 Displays or changes the value of
518 <application>Postfix</application> configuration parameters.
519 </para>
520 <indexterm zone="postfix postconf">
521 <primary sortas="b-postconf">postconf</primary>
522 </indexterm>
523 </listitem>
524 </varlistentry>
525
526 <varlistentry id="postdrop">
527 <term><command>postdrop</command></term>
528 <listitem>
529 <para>
530 Creates a file in the maildrop directory and copies its standard
531 input to the file.
532 </para>
533 <indexterm zone="postfix postdrop">
534 <primary sortas="b-postdrop">postdrop</primary>
535 </indexterm>
536 </listitem>
537 </varlistentry>
538
539 <varlistentry id="postfix-bin">
540 <term><command>postfix</command></term>
541 <listitem>
542 <para>
543 is the <application>Postfix</application> control program.
544 </para>
545 <indexterm zone="postfix postfix-bin">
546 <primary sortas="b-postfix">postfix</primary>
547 </indexterm>
548 </listitem>
549 </varlistentry>
550
551 <varlistentry id="postkick">
552 <term><command>postkick</command></term>
553 <listitem>
554 <para>
555 Sends requests to the specified service over a local transport
556 channel.
557 </para>
558 <indexterm zone="postfix postkick">
559 <primary sortas="b-postkick">postkick</primary>
560 </indexterm>
561 </listitem>
562 </varlistentry>
563
564 <varlistentry id="postlock">
565 <term><command>postlock</command></term>
566 <listitem>
567 <para>
568 Locks a mail folder for exclusive use, and executes commands passed
569 to it.
570 </para>
571 <indexterm zone="postfix postlock">
572 <primary sortas="b-postlock">postlock</primary>
573 </indexterm>
574 </listitem>
575 </varlistentry>
576
577 <varlistentry id="postlog">
578 <term><command>postlog</command></term>
579 <listitem>
580 <para>
581 A <application>Postfix</application>-compatible logging interface
582 for use in, for example, shell scripts.
583 </para>
584 <indexterm zone="postfix postlog">
585 <primary sortas="b-postlog">postlog</primary>
586 </indexterm>
587 </listitem>
588 </varlistentry>
589
590 <varlistentry id="postmap">
591 <term><command>postmap</command></term>
592 <listitem>
593 <para>
594 Creates or queries one or more Postfix lookup tables, or updates an
595 existing one.
596 </para>
597 <indexterm zone="postfix postmap">
598 <primary sortas="b-postmap">postmap</primary>
599 </indexterm>
600 </listitem>
601 </varlistentry>
602
603 <varlistentry id="postmulti">
604 <term><command>postmulti</command></term>
605 <listitem>
606 <para>
607 is the <application>Postfix</application> multi-instance manager.
608 It allows a system administrator to manage multiple
609 <application>Postfix</application> instances on a single host.
610 </para>
611 <indexterm zone="postfix postmulti">
612 <primary sortas="b-postmulti">postmulti</primary>
613 </indexterm>
614 </listitem>
615 </varlistentry>
616
617 <varlistentry id="postqueue">
618 <term><command>postqueue</command></term>
619 <listitem>
620 <para>
621 The <application>Postfix</application> user interface for
622 queue management.
623 </para>
624 <indexterm zone="postfix postqueue">
625 <primary sortas="b-postqueue">postqueue</primary>
626 </indexterm>
627 </listitem>
628 </varlistentry>
629
630 <varlistentry id="postsuper">
631 <term><command>postsuper</command></term>
632 <listitem>
633 <para>
634 The <application>Postfix</application> user interface for
635 superuser queue management.
636 </para>
637 <indexterm zone="postfix postsuper">
638 <primary sortas="b-postsuper">postsuper</primary>
639 </indexterm>
640 </listitem>
641 </varlistentry>
642
643 <varlistentry id="sendmail-postfix">
644 <term><command>sendmail</command></term>
645 <listitem>
646 <para>
647 is the <application>Postfix</application> to
648 <application>Sendmail</application> compatibility interface.
649 </para>
650 <indexterm zone="postfix sendmail-postfix">
651 <primary sortas="b-sendmail">sendmail</primary>
652 </indexterm>
653 </listitem>
654 </varlistentry>
655
656 </variablelist>
657
658 </sect2>
659
660</sect1>
Note: See TracBrowser for help on using the repository browser.