blob: 0d5b0eef50a751719dd7ed0df57bea1f678412ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Postfix and Linux</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix and Linux</h1>
<hr>
<h2> Host lookup issues </h2>
<p> By default Linux /etc/hosts lookups do not support multiple IP
addresses per hostname. This causes warnings from the Postfix SMTP
server that "hostname XXX does not resolve to address YYY", and is
especially a problem with hosts that have both IPv4 and IPv6
addresses. To fix this, turn on support for multiple IP addresses: </p>
<blockquote>
<pre>
/etc/host.conf:
...
# We have machines with multiple IP addresses.
multi on
...
</pre>
</blockquote>
<p> Alternatively, specify the RESOLV_MULTI environment variable
in <a href="postconf.5.html">main.cf</a>: </p>
<blockquote>
<pre>
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
<a href="postconf.5.html#import_environment">import_environment</a> = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LANG=C RESOLV_MULTI=on
</pre>
</blockquote>
<h2>Berkeley DB issues</h2>
<p> If you can't compile Postfix because the file "db.h"
isn't found, then you MUST install the Berkeley DB development
package (name: db???-devel-???) that matches your system library.
You can find out what is installed with the rpm command. For example:
</p>
<blockquote>
<pre>
$ <b>rpm -qf /usr/lib/libdb.so</b>
db4-4.3.29-2
</pre>
</blockquote>
<p> This means that you need to install db4-devel-4.3.29-2 (on
some systems, specify "<b>rpm -qf /lib/libdb.so</b>" instead). </p>
<p> DO NOT download some Berkeley DB version from the network.
Every Postfix program will dump core when it is built with a different
Berkeley DB version than the version that is used by the system
library routines. See the <a href="DB_README.html">DB_README</a> file for further information.
</p>
<h2>Procmail issues</h2>
<p> On RedHat Linux 7.1 and later <b>procmail</b> no longer has
permission
to write to the mail spool directory. Workaround: </p>
<blockquote>
<pre>
# chmod 1777 /var/spool/mail
</pre>
</blockquote>
<h2>Logging in a container</h2>
<p> When running Postfix inside a container, you can use stdout
logging as described in <a href="MAILLOG_README.html">MAILLOG_README</a>. Alternatives: run syslogd
inside the container, or mount the host's syslog socket inside the
container. </p>
<h2>Syslogd performance</h2>
<p> LINUX <b>syslogd</b> uses synchronous writes by default. Because
of this, <b>syslogd</b> can actually use more system resources than
Postfix. To avoid such badness, disable synchronous mail logfile
writes by editing /etc/syslog.conf and by prepending a - to the
logfile name: </p>
<blockquote>
<pre>
/etc/syslog.conf:
mail.* -/var/log/mail.log
</pre>
</blockquote>
<p> Send a "<b>kill -HUP</b>" to the <b>syslogd</b> to make the
change effective. </p>
<h2>Other logging performance issues</h2>
<p> LINUX <b>systemd</b> intercepts all logging and enforces its
own rate limits before handing off requests to a backend such as
<b>rsyslogd</b> or <b>syslog-ng</b>. On a busy mail server this can
result in information loss. As a workaround, you can use Postfix's
built-in logging as described in <a href="MAILLOG_README.html">MAILLOG_README</a>. </p>
</body>
</html>
|