120 lines
3.2 KiB
HTML
120 lines
3.2 KiB
HTML
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"https://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">
|
|
<link rel='stylesheet' type='text/css' href='postfix-doc.css'>
|
|
|
|
</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 main.cf: </p>
|
|
|
|
<blockquote>
|
|
<pre>
|
|
/etc/postfix/main.cf:
|
|
import_environment = 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 DB_README 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 MAILLOG_README. 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 MAILLOG_README. </p>
|
|
|
|
</body>
|
|
|
|
</html>
|