source: server/mail/postfix.xml@ 3e4b0b2

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 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 3e4b0b2 was 2e8afa9, checked in by Igor Živković <igor@…>, 10 years ago

Update to postfix-2.11.0.

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

  • Property mode set to 100644
File size: 20.6 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 "25fe7dd05f81cc0755131beecee046fd">
11 <!ENTITY postfix-size "3.9 MB">
12 <!ENTITY postfix-buildsize "170 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="mariadb"/> or <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 -i "s/DB_VERSION_MAJOR == 5/DB_VERSION_MAJOR >= 5/" src/util/dict_db.c</userinput></screen>
143
144 <para>
145 The README files are formatted to be read with a pager like
146 <application>Less</application> or <application>More</application>.
147 If you want to read them in a text editor, make them legible with a sed:
148 </para>
149
150<screen><userinput>sed -i 's/.\x08//g' README_FILES/*</userinput></screen>
151
152 <para>
153 The <application>Postfix</application> source tree does not contain a
154 <filename>configure</filename> script, rather the makefile in the
155 top-level directory contains a <option>makefiles</option> target that
156 regenerates all the other makefiles in the build tree. If you wish to
157 use additional software such as a database back-end for virtual users,
158 or TLS/SSL authentication, you will need to regenerate the makefiles
159 using one or more of the appropriate <envar>CCARGS</envar> and
160 <envar>AUXLIBS</envar> settings listed below.
161 </para>
162
163 <para>
164 For more details read the readme files.
165 </para>
166
167 <sect4>
168 <title>Cyrus-SASL</title>
169
170 <para>
171 To use <application>Cyrus-SASL</application> with
172 <application>Postfix</application>, use the following arguments:
173 </para>
174
175<screen><literal>CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl'
176AUXLIBS='-lsasl2'</literal></screen>
177
178 </sect4>
179
180 <sect4>
181 <title>OpenLDAP</title>
182
183 <para>
184 To use <application>OpenLDAP</application> with
185 <application>Postfix</application>, use the following arguments:
186 </para>
187
188<screen><literal>CCARGS='-DHAS_LDAP'
189AUXLIBS='-lldap -llber'</literal></screen>
190
191 </sect4>
192
193 <sect4>
194 <title>Sqlite</title>
195
196 <para>
197 To use <application>Sqlite</application> with
198 <application>Postfix</application>, use the following arguments:
199 </para>
200
201<screen><literal>CCARGS='-DHAS_SQLITE'
202AUXLIBS='-lsqlite3 -lpthread'</literal></screen>
203
204 </sect4>
205
206 <sect4>
207 <title>MySQL</title>
208
209 <para>
210 To use <application>MySQL</application> with
211 <application>Postfix</application>, use the following arguments:
212 </para>
213
214<screen><literal>CCARGS='-DHAS_MYSQL -I/usr/include/mysql'
215AUXLIBS='-lmysqlclient -lz -lm'</literal></screen>
216
217 </sect4>
218
219 <sect4>
220 <title>PostgreSQL</title>
221
222 <para>
223 To use <application>PostgreSQL</application> with
224 <application>Postfix</application>, use the following arguments:
225 </para>
226
227<screen><literal>CCARGS='-DHAS_PGSQL -I/usr/include/postgresql'
228AUXLIBS='-lpq -lz -lm'</literal></screen>
229
230 </sect4>
231
232 <sect4>
233 <title>CDB/TinyCDB</title>
234
235 <para>
236 To use <application>CDB</application> or
237 <application>TinyCDB</application> with
238 <application>Postfix</application>, use the following arguments:
239 </para>
240
241<screen><literal>CCARGS='-DHAS_CDB'
242AUXLIBS='<replaceable>&lt;/path/to/CDB&gt;</replaceable>/libcdb.a'</literal></screen>
243
244 </sect4>
245
246 <sect4>
247 <title>StartTLS Authentication</title>
248
249 <para>
250 To use <application>OpenSSL</application> with
251 <application>Postfix</application>, use the following arguments:
252 </para>
253
254<screen><literal>CCARGS='-DUSE_TLS -I/usr/include/openssl/'
255AUXLIBS='-lssl -lcrypto'</literal></screen>
256 </sect4>
257
258 </sect3>
259
260 <sect3>
261 <title>Installing Postfix</title>
262
263 <para>
264 If you have <application>Cyrus SASL</application> and
265 <application>OpenSSL</application> installed, install
266 <application>Postfix</application> by running the following commands:
267 </para>
268
269<screen><userinput>make CCARGS="-DNO_NIS -DUSE_TLS -I/usr/include/openssl/ \
270 -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" \
271 AUXLIBS="-lssl -lcrypto -lsasl2" \
272 makefiles &amp;&amp;
273make</userinput></screen>
274
275 <!-- There is a testsuite, but it fails a lot. It seems to need
276 the host to be specifically setup for the tests.
277 Run with `make tests' and `make root_tests' -->
278 <para>
279 This package does not come with a useful test suite.
280 </para>
281
282 <para>
283 Now, as the <systemitem class="username">root</systemitem> user:
284 </para>
285
286<!-- dev note: sh postfix-install -non-interactiv install_root=<DESTDIR> ... -->
287
288<screen role="root"><userinput>sh postfix-install -non-interactive \
289 daemon_directory=/usr/lib/postfix \
290 manpage_directory=/usr/share/man \
291 html_directory=/usr/share/doc/postfix-&postfix-version;/html \
292 readme_directory=/usr/share/doc/postfix-&postfix-version;/readme</userinput></screen>
293
294 </sect3>
295
296 </sect2>
297
298 <sect2 role="commands">
299 <title>Command Explanations</title>
300
301 <para>
302 <command>make makefiles</command>: This command rebuilds the makefiles
303 throughout the source tree to use the options contained in the
304 <envar>CCARGS</envar> and <envar>AUXLIBS</envar> variables.
305 </para>
306
307 <para>
308 <parameter>-DNO_NIS</parameter>: This option disables building Network
309 Information Service/Yellow Pages support. The RPC implementation in Glibc
310 (on which NIS/YP depends) is deprecated.
311 </para>
312
313 <para>
314 <command>sh postfix-install -non-interactive</command>: This keeps the
315 install script from asking any questions, thereby accepting default
316 destination directories in all but the few cases. If the
317 <option>html_directory</option> and <option>readme_directory</option>
318 options are not set then the documentation will not be installed.
319 </para>
320
321 </sect2>
322
323 <sect2 role="configuration">
324 <title>Configuring Postfix</title>
325
326 <sect3 id="postfix-config">
327 <title>Config Files</title>
328
329 <para>
330 <filename>/etc/aliases</filename>,
331 <filename>/etc/postfix/main.cf</filename>, and
332 <filename>/etc/postfix/master.cf</filename>
333 </para>
334
335 <indexterm zone="postfix postfix-config">
336 <primary sortas="e-etc-aliases">/etc/aliases</primary>
337 </indexterm>
338
339 <indexterm zone="postfix postfix-config">
340 <primary sortas="e-etc-postfix-star">/etc/postfix/*</primary>
341 </indexterm>
342
343 </sect3>
344
345 <sect3>
346 <title>Configuration Information</title>
347
348 <para>
349 Create (or append to an existing) <filename>/etc/aliases</filename>
350 with the following command. Change
351 <replaceable>&lt;LOGIN&gt;</replaceable> for your non-root login
352 identity so mail addressed to
353 <systemitem class="username">root</systemitem> can be forwarded to you.
354 As the <systemitem class="username">root</systemitem> user:
355 </para>
356
357<screen role="root"><userinput>cat &gt;&gt; /etc/aliases &lt;&lt; "EOF"
358<literal># Begin /etc/aliases
359
360MAILER-DAEMON: postmaster
361postmaster: root
362
363root: <replaceable>&lt;LOGIN&gt;</replaceable>
364# End /etc/aliases</literal>
365EOF</userinput></screen>
366
367 <para>
368 To protect an existing <filename>/etc/aliases</filename> file,
369 the above command appends these aliases to it if it exists. This file
370 should be checked and duplicate aliases removed, if present.
371 </para>
372
373 <note>
374 <para>
375 The <filename>/etc/postfix/main.cf</filename> and
376 <filename>/etc/postfix/master.cf</filename> files must be personalized
377 for your system. The <filename>main.cf</filename> file needs your
378 fully qualified hostname. You will find that
379 <filename>main.cf</filename> is self documenting, so load it into your
380 editor to make the changes you need for your situation.
381 </para>
382 </note>
383
384 <note>
385 <para>
386 <application>Postfix</application> can also be set up to
387 run in a chroot jail. See the file in the source
388 <filename>examples/chroot-setup/LINUX2</filename> for details.
389 </para>
390 </note>
391
392 <para>
393 If you have an existing configuration, you can run the
394 <command>postfix</command> utility to add any necessary definitions to
395 your existing files. As the
396 <systemitem class="username">root</systemitem> user:
397 </para>
398
399<screen role="root"><userinput>/usr/sbin/postfix upgrade-configuration</userinput></screen>
400
401 <para>
402 Before starting <application>Postfix</application>, you should check
403 that your configuration and file permissions will work properly. Run the
404 following commands as the <systemitem class="username">root</systemitem>
405 user to check and start your <application>Postfix</application> server:
406 </para>
407
408<screen role="root"><userinput>/usr/sbin/postfix check &amp;&amp;
409/usr/sbin/postfix start</userinput></screen>
410
411 </sect3>
412
413 <sect3 id="postfix-init">
414 <title>Boot Script</title>
415
416 <para>
417 To automate the running of Postfix at startup, install the
418 <filename>/etc/rc.d/init.d/postfix</filename> init script included in
419 the <xref linkend="bootscripts"/> package.
420 </para>
421
422 <indexterm zone="postfix postfix-init">
423 <primary sortas="f-postfix">postfix</primary>
424 </indexterm>
425
426<screen role="root"><userinput>make install-postfix</userinput></screen>
427
428 </sect3>
429
430 </sect2>
431
432 <sect2 role="content">
433 <title>Contents</title>
434
435 <segmentedlist>
436 <segtitle>Installed Programs</segtitle>
437 <segtitle>Installed Libraries</segtitle>
438 <segtitle>Installed Directories</segtitle>
439
440 <seglistitem>
441 <seg>
442 mailq, newaliases, postalias, postcat, postconf, postdrop, postfix,
443 postkick, postlock, postlog, postmap, postmulti, postqueue, postsuper,
444 and sendmail
445 </seg>
446 <seg>
447 None
448 </seg>
449 <seg>
450 /etc/postfix,
451 /usr/lib/postfix,
452 /usr/share/doc/postfix-&postfix-version;,
453 /var/lib/postfix, and
454 /var/spool/postfix
455 </seg>
456 </seglistitem>
457 </segmentedlist>
458
459 <variablelist>
460 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
461 <?dbfo list-presentation="list"?>
462 <?dbhtml list-presentation="table"?>
463
464 <varlistentry id="mailq">
465 <term><command>mailq</command></term>
466 <listitem>
467 <para>
468 A symlink to <filename>sendmail</filename>.
469 </para>
470 <indexterm zone="postfix mailq">
471 <primary sortas="b-mailq">mailq</primary>
472 </indexterm>
473 </listitem>
474 </varlistentry>
475
476 <varlistentry id="newaliases">
477 <term><command>newaliases</command></term>
478 <listitem>
479 <para>
480 A symlink to <filename>sendmail</filename>.
481 </para>
482 <indexterm zone="postfix newaliases">
483 <primary sortas="b-newaliases">newaliases</primary>
484 </indexterm>
485 </listitem>
486 </varlistentry>
487
488 <varlistentry id="postalias">
489 <term><command>postalias</command></term>
490 <listitem>
491 <para>
492 is a utility for <application>Postfix</application> alias database
493 maintenance
494 </para>
495 <indexterm zone="postfix postalias">
496 <primary sortas="b-postalias">postalias</primary>
497 </indexterm>
498 </listitem>
499 </varlistentry>
500
501 <varlistentry id="postcat">
502 <term><command>postcat</command></term>
503 <listitem>
504 <para>
505 Prints the contents of files from the
506 <application>Postfix</application> queue in human readable format.
507 </para>
508 <indexterm zone="postfix postcat">
509 <primary sortas="b-postcat">postcat</primary>
510 </indexterm>
511 </listitem>
512 </varlistentry>
513
514 <varlistentry id="postconf">
515 <term><command>postconf</command></term>
516 <listitem>
517 <para>
518 Displays or changes the value of
519 <application>Postfix</application> configuration parameters.
520 </para>
521 <indexterm zone="postfix postconf">
522 <primary sortas="b-postconf">postconf</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526
527 <varlistentry id="postdrop">
528 <term><command>postdrop</command></term>
529 <listitem>
530 <para>
531 Creates a file in the maildrop directory and copies its standard
532 input to the file.
533 </para>
534 <indexterm zone="postfix postdrop">
535 <primary sortas="b-postdrop">postdrop</primary>
536 </indexterm>
537 </listitem>
538 </varlistentry>
539
540 <varlistentry id="postfix-bin">
541 <term><command>postfix</command></term>
542 <listitem>
543 <para>
544 is the <application>Postfix</application> control program.
545 </para>
546 <indexterm zone="postfix postfix-bin">
547 <primary sortas="b-postfix">postfix</primary>
548 </indexterm>
549 </listitem>
550 </varlistentry>
551
552 <varlistentry id="postkick">
553 <term><command>postkick</command></term>
554 <listitem>
555 <para>
556 Sends requests to the specified service over a local transport
557 channel.
558 </para>
559 <indexterm zone="postfix postkick">
560 <primary sortas="b-postkick">postkick</primary>
561 </indexterm>
562 </listitem>
563 </varlistentry>
564
565 <varlistentry id="postlock">
566 <term><command>postlock</command></term>
567 <listitem>
568 <para>
569 Locks a mail folder for exclusive use, and executes commands passed
570 to it.
571 </para>
572 <indexterm zone="postfix postlock">
573 <primary sortas="b-postlock">postlock</primary>
574 </indexterm>
575 </listitem>
576 </varlistentry>
577
578 <varlistentry id="postlog">
579 <term><command>postlog</command></term>
580 <listitem>
581 <para>
582 A <application>Postfix</application>-compatible logging interface
583 for use in, for example, shell scripts.
584 </para>
585 <indexterm zone="postfix postlog">
586 <primary sortas="b-postlog">postlog</primary>
587 </indexterm>
588 </listitem>
589 </varlistentry>
590
591 <varlistentry id="postmap">
592 <term><command>postmap</command></term>
593 <listitem>
594 <para>
595 Creates or queries one or more Postfix lookup tables, or updates an
596 existing one.
597 </para>
598 <indexterm zone="postfix postmap">
599 <primary sortas="b-postmap">postmap</primary>
600 </indexterm>
601 </listitem>
602 </varlistentry>
603
604 <varlistentry id="postmulti">
605 <term><command>postmulti</command></term>
606 <listitem>
607 <para>
608 is the <application>Postfix</application> multi-instance manager.
609 It allows a system administrator to manage multiple
610 <application>Postfix</application> instances on a single host.
611 </para>
612 <indexterm zone="postfix postmulti">
613 <primary sortas="b-postmulti">postmulti</primary>
614 </indexterm>
615 </listitem>
616 </varlistentry>
617
618 <varlistentry id="postqueue">
619 <term><command>postqueue</command></term>
620 <listitem>
621 <para>
622 The <application>Postfix</application> user interface for
623 queue management.
624 </para>
625 <indexterm zone="postfix postqueue">
626 <primary sortas="b-postqueue">postqueue</primary>
627 </indexterm>
628 </listitem>
629 </varlistentry>
630
631 <varlistentry id="postsuper">
632 <term><command>postsuper</command></term>
633 <listitem>
634 <para>
635 The <application>Postfix</application> user interface for
636 superuser queue management.
637 </para>
638 <indexterm zone="postfix postsuper">
639 <primary sortas="b-postsuper">postsuper</primary>
640 </indexterm>
641 </listitem>
642 </varlistentry>
643
644 <varlistentry id="sendmail-postfix">
645 <term><command>sendmail</command></term>
646 <listitem>
647 <para>
648 is the <application>Postfix</application> to
649 <application>Sendmail</application> compatibility interface.
650 </para>
651 <indexterm zone="postfix sendmail-postfix">
652 <primary sortas="b-sendmail">sendmail</primary>
653 </indexterm>
654 </listitem>
655 </varlistentry>
656
657 </variablelist>
658
659 </sect2>
660
661</sect1>
Note: See TracBrowser for help on using the repository browser.