masqmail

view man/masqmail.conf.5 @ 387:a408411ff8df

Added a glob-pattern aliasing facility. One use-case is virtual hosting another catch-all maildrops, but you may use it as a more flexible aliasing mechanism as well.
author markus schnalke <meillo@marmaro.de>
date Sat, 18 Feb 2012 12:35:12 +0100
parents 35c5239ebcc1
children b033fd9b96e4
line source
1 .TH masqmail.conf 5 2012-01-18 masqmail-0.3.4 "File Formats"
3 .SH NAME
4 masqmail.conf \- masqmail configuration file
7 .SH DESCRIPTION
9 This man page describes the syntax of the main configuration file of masqmail.
10 Its usual location is \fI/etc/masqmail/masqmail.conf\fR
12 The configuration consists of lines of the form
14 \fBval\fR = \fIexpression\fR
16 Where \fBval\fR is a variable name and \fIexpression\fR a string,
17 which can be quoted with double quotes `"'.
18 If the expression is on multiple lines or contains characters other than letters,
19 digits or the characters `.', `-', `_', `/', ';', '@', ':', it must be quoted.
20 You can use quotes inside quotes by escaping them with a backslash.
22 Each \fBval\fP has a type, which can be boolean, numeric, string or list.
23 A boolean variable can be set with one of the values `on', `yes', and `true' or `off', `no' and `false'.
24 List items are separated with semicolons `;'.
25 For some values, patterns (like `*',`?') can be used.
26 The spaces in front of and after the equal sign `=' are optional.
28 Most lists (exceptions: \fBlocal_hosts\fR, \fBlisten_addresses\fR,
29 \fBquery_routes.\fIname\fR and \fBpermanent_routes\fR) accept files.
30 These will be recognized by a leading slash `/'.
31 The contents of these files will be included at the position of the file name,
32 there can be items or other files before and after the file entry.
33 The format of the files is different though, within these files each entry is on another line
34 and the entries are not separated by semicolons.
35 This makes it easy to include large lists which are common in different configuration files,
36 so they do not have to appear in every configuration file.
38 Blank lines and lines starting with a hash `#' are ignored.
41 .SH OPTIONS
43 .TP
44 \fBrun_as_user = \fIboolean\fR
46 If this is set, masqmail runs with the user id of the user who invoked it and never changes it.
47 This is for debugging purposes only.
48 If the user is not root, masqmail will not be able to listen on a port < 1024
49 and will not be able to deliver local mail to others than the user.
51 .TP
52 \fBuse_syslog = \fIboolean\fR
54 If this is set, masqmail uses syslogd for logging.
55 It uses facility MAIL.
56 You still have to set \fBlog_dir\fR for debug files.
58 .TP
59 \fBdebug_level = \fIn\fR
61 Set the debug level.
62 Valid values are 0 to 6 and 9.
63 Be careful if you set this as high as 5 or higher,
64 the logs may very soon fill your hard drive.
65 Level 9 enables printing of debug messages to stderr during reading of
66 the config file.
67 The debug file comes available for the first time after this step.
68 Thus nothing but stderr is available.
69 Level 9 is almost never interesting.
71 .TP
72 \fBlog_dir = \fIfile\fR
74 The directory where logs are stored, if syslog is not used.
75 Debug files are always stored in this directory if debugging is enabled.
76 \fIfile\fR must be an absolute path.
78 Default: \fI/var/log/masqmail\fR
80 .TP
81 \fBmail_dir = \fIfile\fR
83 The directory where local mail is stored, usually \fI/var/spool/mail\fR or \fI/var/mail\fR.
84 \fIfile\fR must be an absolute path.
86 Default: \fI/var/mail\fR
88 .TP
89 \fBspool_dir = \fIfile\fR
91 The directory where masqmail stores its spool files (and later also other stuff).
92 It must have a subdirectory \fIinput\fR.
93 Masqmail needs read and write permissions for this directory.
94 \fIfile\fR must be an absolute path.
96 Default: \fI/var/spool/masqmail\fR
98 .TP
99 \fBlock_dir = \fIfile\fR
101 The directory where masqmail stores its lock files.
102 Masqmail needs read and write permissions for this directory.
103 By default it is a directory ``lock'' inside of \fIspool_dir\fP.
104 \fIfile\fR must be an absolute path.
106 .TP
107 \fBhost_name = \fIstring\fR
109 This is used in different places: Masqmail identifies itself in the greeting banner
110 on incoming connections and in the HELO/EHLO command for outgoing connections with this name,
111 it is used in the Received: header and to qualify the sender of a locally originating message.
113 If the string begins with a slash `/', it it assumed that it is a filename,
114 and the first line of this file will be used.
115 Usually this will be `/etc/mailname' to make masqmail conform to Debian policies.
117 It is not used to find whether an address is local. Use \fBlocal_hosts\fR for that.
119 Default: none; \fBhost_name\fP MUST be set in the config file
121 .TP
122 \fBlocal_hosts = \fIlist\fR
124 A semicolon `;' separated list of hostnames which are considered local.
125 Can contain glob patterns, like
126 `*example.org' or `mail?.*mydomain.net'.
127 Normally you should set it to "localhost;foo;foo.bar.com" if your host has the
128 fully qualified domain name `foo.bar.com'.
130 Default: localhost ; <value of \fBhost_name\fR cut at the first dot> ; <value of \fBhost_name\fR>
132 Example: \fIlocalhost;foo;foo.example.org\fR
133 (if you have set \fBhost_name\fR to \fIfoo.example.org\fR)
135 .TP
136 \fBlocal_addresses = \fIlist\fR
138 A semicolon `;' separated list of fully qualified email-addresses which are
139 considered local although their domain name part is not in the list of \fBlocal_hosts\fR.
140 This list can be seen as an addition to \fBlocal_hosts\fP.
142 Further more only the local part of the addresses will be regarded,
143 seeing it as a local user.
145 Example: \fIlocal_addresses = "person1@yourdomain;person2@yourdomain"\fP
147 This means mail to person1@yourdomain will effectively go to
148 person1@localhost, if not redirected by an alias.
150 .TP
151 \fBnot_local_addresses = \fIlist\fR
153 A semicolon `;' separated list of fully qualified email-addresses which are
154 considered not local although their domain name part is in the list of \fBlocal_hosts\fR.
155 This list can be seen as a substraction to \fBlocal_hosts\fP.
157 This is the opposite of the previous case.
158 The majority of addresses of a specific domain are local.
159 But some users are not.
160 With this option you can easily exclude these users.
162 Example:
164 local_hosts = "localhost;myhost;mydomain.net"
166 not_local_addresses = "eric@mydomain.net"
168 .TP
169 \fBlisten_addresses = \fIlist\fR
171 A semicolon `;' separated list of interfaces on which connections will be accepted.
172 An interface ist defined by a hostname, optionally followed by a colon `:' and a number for the port.
173 If this is left out, port 25 will be used.
175 You can set this to "localhost:25;foo:25" if your hostname is `foo'.
177 Note that the names are resolved to IP addresses.
178 If your host has different names which resolve to the same IP,
179 use only one of them, otherwise you will get an error message.
181 Default: \fIlocalhost:25\fR (i.e. only local processes can connect)
183 .TP
184 \fBdo_save_envelope_to = \fIboolean\fR
186 If this is set to true, a possibly existing Envelope-to: header in an incoming mail
187 which is received via either pop3 or smtp will be saved as an X-Orig-Envelope-to: header.
189 This is useful if you retrieve mail from a pop3 server with fetchmail,
190 and the server supports Envelope-to: headers,
191 and you want to make use of those with a mail filtering tool, e.g. procmail.
192 It cannot be preserved because masqmail sets such a header by itself.
194 Default is false.
196 .TP
197 \fBdo_relay = \fIboolean\fR
199 If this is set to false, mail with a return path that is not local and a destination
200 that is also not local will not be accepted via smtp and a 550 reply will be given.
201 Default is true.
203 Note that this will not protect you from spammers using open relays,
204 but from users unable to set their address in their mail clients.
206 .TP
207 \fBdo_queue = \fIboolean\fR
209 If this is set, masqmail will not try to deliver mail immediately when accepted.
210 Instead it will always queue it.
211 (Note: Masqmail will always automatically queue mail if neccesary,
212 i.e. if it cannot deliver because no suitable route was available for example.)
214 Same as calling masqmail with the \fB\-odq\fR option.
215 Usually you should leave this option unset.
217 Default: false
219 .TP
220 \fBpermanent_routes\fR = \fIlist\fR
222 Set this to the filename (or a semicolon-separated list of filenames)
223 of the route configuration for always available connections.
224 Main purpose is to define a mail server with mail_host in your local network,
225 or if masqmail should send mail directly to the target host.
226 If you have only a single host, you can leave it unset.
228 A setting `\fBlocal_nets\fR = \fI"*home.net"\fR' in versions <= 0.3.3
229 is in newer versions configured as:
230 `\fBpermanent_routes\fR = \fI"/etc/masqmail/homenet.route"\fR'
231 and the route file `homenet.route' containing:
232 .in +1in
233 .nf
234 allowed_recipients = "*@*home.net"
235 connect_error_fail = true
236 resolve_list = byname
237 .fi
238 .in 0
239 This is just as it had been with \fBlocal_net_route\fP,
240 with the exception that the filtering for appropriate addresses
241 is only in the route file and not with \fBlocal_nets\fR.
243 .TP
244 \fBquery_routes.\fIname\fR = \fIlist\fR
246 Replace \fIname\fR with a name to identify the connection.
247 Set this to a filename (or a semicolon-separated list of filenames)
248 for the route configuration for that connection.
250 Routes of this kind cannot be expected to be online always.
251 Masqmail will query which of the routes are online.
253 You can use the name to call masqmail with the \fB\-qo\fR option every time a
254 connection to your ISP is set up, in order to send queued mail through this
255 route.
257 Example: Your ISP has the name FastNet.
258 Then you write the following line in the main configuration:
260 \fBquery_routes.\fBFastNet\fR = \fI"/etc/masqmail/fastnet.route"\fR
262 \fI/etc/masqmail/fastnet.route\fR is the route configuration file,
263 see \fBmasqmail.route(5)\fR.
264 As soon as a link to FastNet has been set up,
265 you call `masqmail \fB\-qo \fIFastNet\fR'.
266 Masqmail will then read the specified file and send the mails.
268 See \fBonline_query\fP.
270 .TP
271 \fBalias_file = \fIfile\fR
273 Set this to the location of your alias file.
274 If not set, no aliasing will be done.
276 Default: <not set> (i.e. no aliasing is done)
278 .TP
279 \fBglobalias_file = \fIfile\fR
281 Set this to the location of a glob-pattern alias file.
282 This kind of aliasing matches glob patterns against full email addresses,
283 not strings against local parts like in normal aliasing.
284 You can use this to handle catch-all maildrops (``*@example.org'')
285 and to split between virtual hosts on a single machine
286 (e.g. ``info@foo.ex.org'' and ``info@bar.ex.org'').
288 Glob aliasing is done before normal aliasing.
289 If you have both kinds, glob and normal aliasing, then the results of the
290 glob aliasing may be expanded further by the normal aliasing mechanism.
292 Default: <not set> (i.e. no glob aliasing is done)
294 .TP
295 \fBcaseless_matching = \fIboolean\fR
297 If this is set, aliasing and the matching for \fBlocal_addresses\fP and
298 \fBnot_local_addresses\fP will be done caseless.
300 Note: Be sure to change this option only if the queue is empty as
301 correct processing of queued messages is not guaranteed otherwise.
303 Default: false
305 .TP
306 \fBpipe_fromline = \fIboolean\fR
308 If this is set, a from line will be prepended to the output stream whenever
309 a pipe command is called after an alias expansion.
310 Default is false.
312 .TP
313 \fBpipe_fromhack = \fIboolean\fR
315 If this is set, each line beginning with `From ' is replaced with `>From '
316 whenever a pipe command is called after an alias expansion.
317 You probably want this if you have set \fBpipe_fromline\fR above.
318 Default is false.
320 .TP
321 \fBmbox_default = \fIstring\fR
323 The default local delivery method.
324 Can be mbox or mda.
325 You can override this for each user by using the \fBmbox_users\fR or \fBmda_users\fR (see below).
327 Default: mbox.
329 .TP
330 \fBmbox_users = \fIlist\fR
332 A list of users which wish delivery to an mbox style mail folder.
334 .TP
335 \fBmda_users = \fIlist\fR
337 A list of users which wish local delivery to an mda.
338 You have to set \fBmda\fR (see below) as well.
340 .TP
341 \fBmda = \fIexpand string\fR
343 If you want local delivery to be transferred to an mda (Mail Delivery Agent),
344 set this to a command.
345 The argument will be expanded on delivery time,
346 you can use variables beginning with a dolloar sign `$', optionally enclosed in curly braces.
347 Variables you can use are:
349 uid - the unique message id.
350 This is not necessarily identical with the Message ID as given in the Message ID: header.
352 received_host - the host the mail was received from
354 ident - the user id of the sender if the message was received locally.
356 return_path_local - the local part of the return path (sender).
358 return_path_domain - the domain part of the return path (sender).
360 return_path - the complete return path (sender).
362 rcpt_local - the local part of the recipient.
364 rcpt_domain - the domain part of the recipient.
366 rcpt - the complete recipient address.
368 Example:
370 mda="/usr/bin/procmail \-Y \-d ${rcpt_local}"
372 For the mda, as for pipe commands, a few environment variables will be set as well.
373 See \fBmasqmail(8)\fR.
374 To use environment variables for the mda, the dollar sign `$' has to be escaped with a backslash,
375 otherwise they will be tried to be expanded with the internal variables.
377 .TP
378 \fBmda_fromline = \fIboolean\fR
380 If this is set, a from line will be prepended to the output stream whenever
381 a message is delivered to an mda.
382 Default is false.
384 .TP
385 \fBmda_fromhack = \fIboolean\fR
387 If this is set, each line beginning with `From ' is replaced with `>From '
388 whenever a message is delivered to an mda.
389 You probably want this if you have set \fBmda_fromline\fR above.
390 Default is false.
392 .TP
393 \fBonline_query = \fIcommand line\fR
395 Defines the method masqmail uses to detect whether there exists an online connection currently.
397 Masqmail executes the command given and reads from its standard output.
398 The command should just print a route name, as defined
399 with \fBquery_routes.\fIname\fR, to standard output and return a zero status code.
400 Masqmail assumes it is offline if the script returns with a non-zero status.
401 Leading and trailing whitespace is removed from the output.
403 Simple example:
405 .nf
406 #!/bin/sh
407 test \-e /var/run/masqmail/masqmail-route || exit 1
408 cat /var/run/masqmail/masqmail-route
409 exit 0
410 .fi
412 No matter how masqmail detects the online status,
413 only messages that are accepted at online time will be delivered using the connection.
414 The mail spool still needs to be emptied manually
415 (\fB\-qo\fIconnection\fR).
417 \fIcommand line\fR must start with an absolute path to an executable program.
418 It can contain optional arguments.
420 To simulate the old online_method=file, use:
421 \fI/bin/cat /path/to/file\fP
423 To be always online with connection `foo', use:
424 \fI/bin/echo foo\fP
426 To query a masqdialer server
427 (i.e. asking it whether a connection exists and what its name is)
428 use:
429 \fI/usr/bin/mservdetect localhost 224\fP
431 .TP
432 \fBerrmsg_file = \fIfile\fR
434 Set this to a template which will be used to generate delivery failure reports.
435 Variable parts within the template begin with a dollar sign and are identical
436 to those which can be used as arguments for the mda command, see \fBmda\fR above.
437 Additional information can be included with @failed_rcpts, @msg_headers and @msg_body,
438 these must be at the beginning of a line and will be replaced with the list of the failed recipients,
439 the message headers and the message body of the failed message.
441 Default is /usr/share/masqmail/tpl/failmsg.tpl.
443 .TP
444 \fBwarnmsg_file = \fIfile\fR
446 Set this to a template which will be used to generate delivery warning reports.
447 It uses the same mechanisms for variables as \fBerrmsg_file\fR, see above.
449 Default is /usr/share/masqmail/tpl/warnmsg.tpl.
451 .TP
452 \fBwarn_intervals\fR = \fIlist\fR
454 Set this to a list of time intervals, at which delivery warnings
455 (starting with the receiving time of the message) shall be generated.
457 A warning will only be generated just after an attempt to deliver the mail
458 and if that attempt failed temporarily.
459 So a warning may be generated after a longer time, if there was no attempt before.
461 Default is "1h;4h;8h;1d;2d;3d"
463 .TP
464 \fBmax_defer_time\fR = \fItime\fR
466 This is the maximum time, in which a temporarily failed mail will be kept in the spool.
467 When this time is exceeded, it will be handled as a delivery failure,
468 and the message will be bounced.
470 The excedence of this time will only be noticed if the message was actually tried to be delivered.
471 If, for example, the message can only be delivered when online,
472 but you have not been online for that time, no bounce will be generated.
474 Default is 4d (4 days)
476 .TP
477 \fBlog_user = \fIname\fR
479 Replace \fIname\fR with a valid local or remote mail address.
481 If this option is set, then a copy of every mail,
482 that passes through the masqmail system will also be sent to the given mail address.
484 For example you can feed your mails into a program like hypermail
485 for archiving purpose by placing an appropriate pipe command in masqmail.alias
487 .TP
488 \fBmax_msg_size\fR = \fIbytes\fR
490 This option sets the maximum size in bytes masqmail will accept for delivery.
491 This value is advertised to the SMTP client by the `SIZE' message during SMTP
492 session setup.
493 Clients pretending to send, or actually send,
494 more than \fIbytes\fR will get a 552 error message.
496 `0' means no fixed maximum size limit is in force.
498 Default is 0 (= unlimited).
500 .TP
501 \fBdefer_all\fR = \fIboolean\fR
503 If set to true, masqmail replies with ``421 service temporarily unavailable''
504 to any SMTP request and shuts the connection down.
505 Note: This option is for debugging purposes only.
507 Default: false
510 .SH AUTHOR
512 Masqmail was written by Oliver Kurth.
513 It is now maintained by Markus Schnalke <meillo@marmaro.de>.
515 You will find the newest version of masqmail at \fBhttp://marmaro.de/prog/masqmail/\fR.
516 There is also a mailing list, you will find information about it at masqmail's main site.
519 .SH BUGS
521 Please report bugs to the mailing list.
524 .SH SEE ALSO
526 \fBmasqmail(8)\fR, \fBmasqmail.route(5)\fR