Added possibility to refuse messages with no Received: hop
[mmondor.git] / mmsoftware / mmmail / src / mmsmtpd / mmsmtpd.conf.5
CommitLineData
cc337670 1.\" $Id: mmsmtpd.conf.5,v 1.16 2009/02/04 09:02:25 mmondor Exp $
47071c2b 2.\"
93447690 3.\" Copyright (C) 2001-2004, Matthew Mondor
47071c2b
MM
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\" notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\" notice, this list of conditions and the following disclaimer in the
13.\" documentation and/or other materials provided with the distribution.
14.\" 3. All advertising materials mentioning features or use of this software
15.\" must display the following acknowledgement:
16.\" This product includes software written by Matthew Mondor.
17.\" 4. The name of Matthew Mondor may not be used to endorse or promote
18.\" products derived from this software without specific prior written
19.\" permission.
20.\"
21.\" THIS SOFTWARE IS PROVIDED BY MATTHEW MONDOR ``AS IS'' AND ANY EXPRESS OR
22.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24.\" IN NO EVENT SHALL MATTHEW MONDOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
27.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31.\"
5eb34fba 32.Dd 12 Dec, 2002
47071c2b
MM
33.Dt MMSMTPD.CONF 5
34.Os
35.Sh NAME
36.Nm mmsmtpd.conf
37.Nd
38.Xr mmsmtpd.conf 5
39configuration file for
40.Xr mmsmtpd 8
41of
42.Xr mmmail 8
43suite
44.Sh SECURITY CONSIDERATIONS
45This
46.Nm /etc/mmsmtpd.conf
47configuration file should only be readable and writeable by the superuser,
48as the MySQL access password is stored in it.
49.Bd -literal -offset indent
50-rw------- 1 root wheel 4504 Sep 8 00:22 /etc/mmsmtpd.conf
51.Ed
52.Pp
53Please read the
54.Xr mmmail 8
55man page for more information on other security consideration issues.
56.Sh DESCRIPTION
57The
58.Nm /etc/mmsmtpd.conf
59file may contain one or more keyword/value pairs per line, empty lines or
60comments. A ';' or '#' character causes all other characters to be considered
61as a comment, and to be ignored, until the end of the current line. It is
62very important to enclose the value for a keyword in double quotes ('"'
63characters) if the following characters are found in it: ';', '#', space and
64tab. Here are documented the various possible keywords and their
65allowed values, as well as their defaults.
66.Pp
67.Nm Daemon administration parameters
68.Pp
69.Bl -tag -width XXXXXXXX -offset indent -compact
70.It Nm ASYNC_PROCESSES Ar "number"
71The server internally launches a pool of asynchroneous processes to serve
72functions which could block the main process for too long (this in fact
73also means all threads with userspace threads such as provided by the Pth
74library). This includes resolving hostnames and MX records.
75This also allows multiprocessor systems to have an advantage when executing
76these functions. It should be noted that two additional file descriptors are
77required in the main process for each async process of the pool. The
78administrator will hence generally configure
79.Fa MAX_IPS ,
80.Fa MAX_PER_IP
81and/or the maximum allowed number of file descriptors allowed for a process by
82the kernel, accordingly.
83.Pp
84.It Nm CHROOT_DIR Ar "directory"
85Location of the directory where the daemon optionally should
86.Xr chroot 2
87in, or "" if it should not. Note that special configuration is generally
88required for this. All files and directories the server will need access to
89should also reside in that directory, notably in
90.Nm /etc/ ,
91such as
92.Nm /etc/resolv.conf , /etc/hosts
93and
94.Nm /etc/group ,
95depending on the system's libc. The
96.Xr mmstat 3
97and
98.Xr syslog 3
99facilities will be initialized before
100.Xr chroot 2
101is called to ensure that they continue working properly. Similarly,
102connection to the MySQL server is also established first. Note that
103if the connection is lost and has to be re-established to the server,
104to a local socket which is outside of the new root, it will not be able
105to re-establish it, although normally local UNIX socket connections are
106reliable. This is not a problem with remote server connections, where
107re-establishing may happen more often, and the jail won't matter.
108.Pp
7fd2c069
MM
109.It Nm LOCK_PATH Ar "file"
110Location of lock file which should be used to determine if the daemon is
111already running. Note that this path resides outside of the
112.Xr chroot 2
113if enabled using
114.Fa CHROOT_DIR .
115.Pp
47071c2b
MM
116.It Nm PID_PATH Ar "file"
117Location where
118.Nm mmsmtpd
119writes it's pid file. This consists of a small file holding the process ID of
120the main process, which can be used by scripts or the administrator to kill
121the daemon properly. This file will be written before
122.Xr chroot 2
123is called, if
124.Fa CHROOT_DIR
125was enabled.
126.Pp
fe10d44d
MM
127.It Nm MAIL_DIR Ar "file"
128If
129.Xr mmmail 8
130was compiled using
131.Nm -DMMMAIL_FILE
132instead of
133.Nm -DMMMAIL_MYSQL ,
134this specifies the directory under which all mail should be stored. The
135directories for the mail boxes will automatically be created as necessary,
136and messages will be stored, one per message, into the corresponding ones.
137Note that the user under which the
138.Xr mmsmtpd 8
139and
140.Xr mmpop3d 8
141processes run must have write access to this directory. In a typical install,
142the directory will be owned by the user running those, and will have the group
143set to the main group for that user, with a permissions mode of 0750.
144.Pp
145Note that using file storage for messages usually yields better performance
146than using SQL storage alone. Although SQL is still used to store
147corresponding mail entries, the file text/glob row of the mail table is what
148consists of a considerable performance bottleneck when many large messages
149exist in the database.
150.Pp
47071c2b
MM
151.It Nm USER Ar "user"
152Unprivileged user server process should run as.
153.Pp
05b78947
MM
154.It Nm GROUPS Ar "group,..."
155Groups process should be part of, separated by commas, without spaces.
156It is important to also include here the 'mmstat' group.
47071c2b
MM
157.Pp
158.It Nm ALLOC_BUFFERS Ar "number"
159On systems which are expected to operate under high load, serving a large
160number of connections simultaneously, it may be ideal to increase this
161variable. This pre-allocates buffers using the
fe10d44d 162.Xr mmpool 3
47071c2b
MM
163library. For a system serving 64 connections, a suitable value may be 4. This
164feature will mostly cause noticeable speed increase on systems which do not
165provide very efficient memory allocators, such as glibc on Linux. The best
166is to perform various tests and evaluate the required number to use here.
167.Pp
fe10d44d
MM
168Note that with the new (current)
169.Xr mmpool 3
170implementation, this value now has little to no significance, because the
171system is especially made to automatically scale properly. This value will
172however still be useful to immediately scale up the system, in cases where a
173large number of connections are immediately expected when launching the
174system.
175.Pp
47071c2b
MM
176.It Nm LOG_FACILITY Ar "facility"
177Syslog facility which should be used for error logging. Should normally be
178one of
179.Sy LOG_AUTH , LOG_AUTHPRIV , LOG_CRON , LOG_DAEMON ,
180.Sy LOG_FTP , LOG_KERN , LOG_LPR , LOG_MAIL ,
181.Sy LOG_NEWS , LOG_SYSLOG , LOG_USER
182or
183.Sy LOG_UUCP .
184See
185.Xr syslog 3
186man page for more information.
187.Pp
188.It Nm LOG_LEVEL Ar "number"
189This consists of the logging verbosity level, controlling which gravity of
190messages should be logged through the
191.Xr syslog 3
192.Ar LOG_FACILITY
193facility. Here consists of the allowable levels and their meaning:
194.Bd -literal -offset indent
1950 = critical and important messages only
1961 = connections are logged
1972 = informational logging (HELO, MAIL and RCPT are
198 logged)
1993 = verbose logging (all commands and replies)
2004 = debugging (even message DATA lines are logged)
201.Ed
202.El
203.Pp
204.Nm TCP server parameters
205.Pp
206.Bl -tag -width XXXXXXXX -offset indent -compact
1fa0c6d7
MM
207.It Nm LISTEN_IPS Ar "address ..."
208IPv4 and/or IPv6 addresses we should
47071c2b
MM
209.Xr bind 2
210to, separated by spaces. These typically consist of the addresses bound to
1fa0c6d7
MM
211a wanted interface to accept connections from. 0.0.0.0 may be used for
212IPv4, or :: for IPv6, if connections from all interfaces should be allowed.
213Obviously, if more than a single address is specified, they should be
214enclosed in double quotes.
47071c2b
MM
215.Pp
216.It Nm SERVER_NAMES Ar "name ..."
217Advertized server hostnames, separated by spaces, there should be the same
218number of entries than for
219.Ar LISTEN_IPS
220, and of course also should be enclosed in double quotes if more than one
221hostname is specified. These can be any wanted hostnames.
222.Pp
223.It Nm LISTEN_PORT Ar "number"
224inet TCP port we should be listening for connections on.
225.Pp
226.It Nm RESOLVE_HOSTS Ar "boolean"
227Resolving clients hostnames for logging can make the system slow depending on
228DNS server reliability and service load. boolean should be TRUE or FALSE,
229respectively.
230.Pp
e334174e
MM
231.It Nm DELAY_ON_ERROR Ar "boolean"
232If set to TRUE, at each bad command or error (see
233.Ar MAX_ERRORS )
234a delay will be forced before accepting another command from that client.
235At each error the delay will increase by one second.
236.Pp
47071c2b
MM
237.It Nm MAX_ERRORS Ar "number"
238Maximum number of bad commands user may issue per session before being dropped.
239.Pp
240.It Nm MAX_IPS Ar "number"
241Total maximum number of simultanious different IP addresses we allow
242connections from.
243.Pp
244.It Nm MAX_PER_IP Ar "number"
245Maximum simultanious connections per single IP address we accept.
246.Pp
247.It Nm CONNECTION_RATE Ar "number"
248Maximum amount of connections to accept per IP address within
249.Fa CONNECTION_PERIOD .
250Can be 0 if no connection rate limits are wanted.
251.Pp
252.It Nm CONNECTION_PERIOD Ar "seconds"
253The number of seconds within which a maximum of
254.Fa CONNECTION_RATE
255connections are accepted for an IP address.
256.Pp
257.It Nm INPUT_TIMEOUT Ar "seconds"
258Maximum input/output timeout in seconds for the client connection.
259The server will disconnect if this is exceeded.
260.Pp
261.It Nm BANDWIDTH_IN Ar "kilobytes"
262This consists of the maximum bandwidth speed limit, in kilobytes per second,
263to allow reading at from the client connection. 0 disables bandwidth
264shaping for this entry. So this restricts the speed we may receive messages at.
265.Pp
266.It Nm BANDWIDTH_OUT Ar "kilobytes"
267This consists of the maximum bandwidth speed limit, in kilobytes per second,
268to allow writing to the client connection. 0 disables bandwidth
269shaping for this entry.
270.Pp
271.It Nm GBANDWIDTH_IN Ar "kilobytes"
272The global maximum bandwidth speed limit, in kilobytes per second, for the
273whole server, at which it is allowed to read from clients. 0 for no limit.
274.Pp
275.It Nm GBANDWIDTH_OUT Ar "kilobytes"
276The global maximum bandwidth speed limit, in kilobytes per second, for the
277whole server, at which it is allowed to write to clients. 0 for no limit.
278.El
279.Pp
280.Nm SMTP specific parameters
281.Pp
282.Bl -tag -width XXXXXXXX -offset indent -compact
193955a0
MM
283.It Nm RELAYING Ar "boolean"
284Enables the relaying feature of mmmail. Note that relaying only currently
285works if mmmail was compiled using MMMAIL_FILE, that is, using file storage
286for message bodies along with MySQL header entries, instead of full headers
287and body stored via MySQL. Moreover, the
288.Xr mmrelayd 8
289daemon must be running for mail to actually be processed and sent to remote
290SMTP servers, otherwise the relaying queue will fill up but not be processed.
291The relaying queue will be stored into
292.Nm <MAIL_DIR>/relayqueue/ .
293.Pp
294When using relaying, it is important to describe the local domains which are
295handled by the local SMTP server through the
296.Nm relaylocal
297database table. These can use patterns as required. This allows
298.Xr mmsmtpd 8
299to differenciate between unknown local addresses for locally handled domains
300and mail which should be relayed out (not to a locally handled domain).
301The
302.Nm relayfrom
303table also should hold patterns of client addresses and/or hostnames which
304should be allowed to use the server for relaying. Relaying will be denied for
1fa0c6d7
MM
305any non-matching clients. IPv4/6 addresses and hostnames may be used,
306depending on weither client address resolving was enabled.
193955a0
MM
307.Pp
308Both tables may optionally contain wildcards for matching, using '*' and '?'.
309.Pp
dec4f16d
MM
310.It Nm MMRELAYD_SOCKET_PATH Ar "path"
311Only taken in consideration if
312.Nm RELAYING
313is TRUE. Specifies the path to the AF_LOCAL DGRAM socket used to notify
314.Xr mmrelayd 8
315when we queue new messages for relaying. Must correspond to the path used
316by the relaying daemon, obviously.
317.Pp
46cf2cd5
MM
318.It Nm RESOLVE_HELO Ar "boolean"
319Should we only accept resolvable hostnames for the
47071c2b
MM
320.Sy HELO
321command? This should be TRUE or FALSE, respectively.
322.Pp
323.It Nm RESOLVE_MX_MAIL Ar "boolean"
324Should we only accept the
325.Sy MAIL
326command from valid addresses with MX records? Should be TRUE or FALSE.
327.Pp
f2c550b1
MM
328.It Nm RESOLVE_MX_RCPT Ar "boolean"
329This option is mostly useful when used along with
330.Sy RESOLVING
331set to TRUE. It permits to immediately reject mail sent for non-local
332destination addresses which domain does not resolve or does not provide an
333MX record. The effect is that such mail will not be added to the relay queue.
334Without this option, it's
335.Xr mmrelayd 8
336which will have to perform the test and mail back to the originator of the
337message about the error, if this mode is prefered. This option should be TRUE
338or FALSE.
339.Pp
47071c2b
MM
340.It Nm REQUIRE_HELO Ar "boolean"
341Is client required to use the
342.Sy HELO
343command before being allowed to use the
344.Sy MAIL
345command? Should be TRUE or FALSE.
346.Pp
cc337670
MM
347.It Nm REQUIRE_HOP Ar "boolean"
348Must at least one
349.Sy Received:
350line be provided as part of a message's header for the message to be allowed?
351Should be TRUE or FALSE.
352.Pp
47071c2b
MM
353.It Nm STATFAIL_ADDRESS Ar "boolean"
354If TRUE, instructs
355.Nm mmsmtpd
193955a0
MM
356to report statistics for each host about invalid local mail address errors
357using the
47071c2b
MM
358.Xr mmstat 3
359facility. Set to
360FALSE to disable. This may be useful so that external scripts
361could potentially take action against hosts, firewalling them off for instance.
362The statistic key will be in the form of:
193955a0
MM
363.Pp
364mmsmtpd|failed|address|<fromipaddr>|<frommailadd>|<tomailaddr>
365.Pp
366.It Nm STATFAIL_RELAY Ar "boolean"
367When RELAYING is enabled, allows to store statistics on clients which attempt
368to relay mail through your server but are unauthorized to do so. The
369.Xr mmstat 3
370key will be in the format:
371.Pp
372mmsmtpd|failed|relay|<fromipaddr>|<frommailaddr>|<tomailaddr>
47071c2b
MM
373.Pp
374.It Nm STATFAIL_FLOOD Ar "boolean"
375Similarly to
376.Fa STATFAIL_ADDRESS ,
377allows to keep statistics on the number of times hosts were rejected for
378flooding (too many messages received from this host for a given period,
379or more
380.Sy RCPT
381commands than allowed per session).
382This is dependant on the
383.Fa FLOOD_PROTECTION ,
384.Fa FLOOD_CACHE
385and
386.Fa MAX_RCPTS
387configuration options. The statistic key will be in the form of:
193955a0
MM
388.Pp
389mmsmtpd|failed|flood|message|<fromipaddr>|<frommailaddr>|<tomailaddr>
390.Pp
391or
392.Pp
393mmsmtpd|failed|flood|rcpt|<fromipaddr>|<frommailaddr>
47071c2b
MM
394.Pp
395.It Nm STATFAIL_FULL Ar "boolean"
396This may be useful to allow the administrator to have a view of what mailboxes
397may need higher quotas, or flushing. If TRUE, statistics will be kept using
398keys of the form:
193955a0 399.Nm mmsmtpd|failed|full|<localmailboxaddr> .
47071c2b
MM
400.Pp
401.It Nm STATFAIL_TIMEOUT Ar "boolean"
402This one keeps statistics of the addresses that fail for timeout after
403.Sy DATA
404command was issued, and before end of message could be sent, using a key of
193955a0 405.Nm mmsmtpd|failed|timeout|<fromipaddr> .
1a5bbe01
MM
406.Pp
407.It Nm STATFAIL_EOF Ar "boolean"
408This allows to keep track of addresses from which clients do not properly
409issue "\\n.\\n" end of message marker or
410.Sy QUIT
411end of session command and are by definition not following the SMTP protocol.
412The mmstat keys will be in the form
193955a0 413.Nm mmsmtpd|failed|eof|<fromipaddr> .
47071c2b 414.Pp
edc0a306
MM
415.It Nm STATFAIL_FILTER Ar "boolean"
416Keep statistics on IP addresses and MAIL FROM addresses which attempt to
417send mail to a box which has filters enabled and for which no rule allows
193955a0
MM
418the sender. The format of the
419.Xr mmstat 3
420key is as follows:
421.Pp
422mmstatd|failed|filter|<fromipaddr>|<frommailaddr>|<tomailaddr>
edc0a306 423.Pp
47071c2b
MM
424.It Nm MAX_RCPTS Ar "number"
425Maximum number of allowed destination recipients per message
426.Pp
427.It Nm MAX_DATA_LINES Ar "number"
428Maximum
429.Sy DATA
430lines to accept for a message, make sure that it is enough for
431general messages of
432.Ar MAX_DATA_SIZE
433bytes large.
434.Pp
435.It Nm MAX_DATA_SIZE Ar "number"
436Maximum allowed
437.Sy DATA
438message size in bytes. Note that MySQL must also have been setup to accept
439BLOB fields of
440.Ar MAX_DATA_SIZE
441via the
442.Ar max_allowed_packet
443and optionally
444.Ar query_buffer_size
445MySQL control variables. This can be as simple as passing
446.Nm -O max_allowed_packet=10M
447as command-line argument to mysqld.
448.Pp
449.It Nm MAX_HOPS Ar "number"
450Maximum number of
451.Sy Received:
452lines allowed in a message to accept it.
453.Pp
454.It Nm FLOOD_PROTECTION Ar "boolean"
455For use against mail bombing, these optionally can be set.
456Turns on or off mail flood protection. Flood rate is evaluated on a
457per client hostname or address basis. Should be TRUE or FALSE.
458.Pp
459.It Nm FLOOD_CACHE Ar "number"
460Only taken into account if
461.Ar FLOOD_PROTECTION
462is TRUE. Make sure that this is high enough, depending on how you set
463.Ar FLOOD_EXPIRES
464and
465.Ar FLOOD_MESSAGES .
466It specifies the maximum number of cache entries which
467can be remembered for hosts from which mail was recently received.
468This typically can be set to the same value as
469.Ar MAX_IPS
470or larger.
471.Pp
472.It Nm FLOOD_MESSAGES Ar "number"
473Specifies how many messages maximum will be accepted within
474.Ar FLOOD_EXPIRES
475delay. Higher than this will be considered flood, and a try again reply will
476be sent to the SMTP client.
477.Pp
478.It Nm FLOOD_EXPIRES Ar "minutes"
479This is the number of minutes for which the cache entry for a host will
480be remembered. It thus consists of the number of minutes within which a
481maximum of
482.Ar FLOOD_MESSAGES
483will be accepted, on a per-host basis.
484.El
485.Pp
486.Nm MySQL related parameters
487.Pp
488.Bl -tag -width XXXXXXXX -offset indent -compact
489.It Nm DB_HOST Ar "hostname"
490Host name of MySQL server we should connect to ("localhost" for UNIX socket).
491.Pp
492.It Nm DB_USER Ar "user"
493MySQL user which has all access on
494.Ar DB_DATABASE
495MySQL database.
496.Pp
497.It Nm DB_PASSWORD Ar "password"
498MySQL authentication password for
499.Ar DB_USER
500user.
501.Pp
502.It Nm DB_DATABASE Ar "database"
503Name of mmmail MySQL database which the
504.Ar DB_USER
505user owns, typically "mmmail".
506.Pp
507.El
508.Sh DEFAULTS
509The following defaults are used:
510.Pp
511.Bd -literal -offset indent -compact
512ASYNC_PROCESSES 3
513CHROOT_DIR ""
514PID_PATH "/var/run/mmsmtpd.pid"
7fd2c069 515LOCK_PATH "/var/run/mmsmtpd.lock"
fe10d44d 516MAIL_DIR "/var/mmmail-dir"
47071c2b 517USER mmmail
05b78947 518GROUPS mmmail,mmstat
47071c2b
MM
519LOG_FACILITY LOG_AUTHPRIV
520SERVER_NAMES "smtp.localhost"
521LISTEN_IPS "127.0.0.1"
522ALLOC_BUFFERS 1
523LOG_LEVEL 3
524LISTEN_PORT 25
525MAX_ERRORS 16
e334174e 526DELAY_ON_ERROR FALSE
47071c2b
MM
527MAX_IPS 64
528MAX_PER_IP 1
529CONNECTION_RATE 10
530CONNECTION_PERIOD 30
531INPUT_TIMEOUT 900
532BANDWIDTH_IN 16
533BANDWIDTH_OUT 4
534GBANDWIDTH_IN 0
535GBANDWIDTH_OUT 0
536RESOLVE_HOSTS FALSE
537STATFAIL_ADDRESS TRUE
193955a0 538STATFAIL_RELAY TRUE
47071c2b
MM
539STATFAIL_FLOOD TRUE
540STATFAIL_FULL TRUE
541STATFAIL_TIMEOUT TRUE
1a5bbe01 542STATFAIL_EOF TRUE
edc0a306 543STATFAIL_FILTER TRUE
193955a0 544RELAYING FALSE
dec4f16d 545MMRELAYD_SOCKET_PATH "/var/run/mmrelayd.sock"
46cf2cd5 546RESOLVE_HELO FALSE
47071c2b
MM
547RESOLVE_MX_MAIL FALSE
548REQUIRE_HELO FALSE
549FLOOD_PROTECTION TRUE
550MAX_RCPTS 16
551MAX_DATA_LINES 15000
552MAX_DATA_SIZE 1048576
553MAX_HOPS 30
554FLOOD_MESSAGES 20
555FLOOD_EXPIRES 30
556FLOOD_CACHE 100
557DB_HOST "localhost"
558DB_USER "mmmail"
559DB_PASSWORD "mmmailpassword"
560DB_DATABASE "mmmail"
561.Ed
562.Sh AUTHOR
563.Nm mmmail
93447690
MM
564suite was written by Matthew Mondor and is Copyright (c) 2001-2004
565Matthew Mondor, All rights reserved.
47071c2b
MM
566.Sh FILES
567.Bl -tag -width XXXXXXXXXXXXXXXXXXXXXXXX -compact
568.It Pa /etc/mmsmtpd.conf
569This file
570.Pp
571.It Pa /usr/local/sbin/mmsmtpd
572The actual SMTP server binary
573.El
574.Sh SEE ALSO
575.Xr mmsmtpd 8 ,
576.Xr mmmail 8 ,
577.Xr mmpop3d 8 ,
578.Xr mmpop3d.conf 5 ,
579.Xr mmstatd 8 ,
580.Xr mmstatd.conf 5 ,
581.Xr syslog 3 ,
582.Xr chroot 2 ,
583.Xr mysql 1 .
584.Sh BUGS
1fa0c6d7 585Please report any bug to mmsoftware@pulsar-zone.net