|
|
TMDA Pre-Configuration
You may need to make some system-wide configuration changes to your
MTA software depending on which one you are running.
[ qmail | Postfix | Exim ]
MTA Configuration (qmail)
No changes need to be made to your qmail configuration in order to use TMDA.
MTA Configuration (Postfix)
- Enable the recipient_delimiter parameter in
Postfix's main.cf if it isn't already. The Postfix default is
+ but - is an acceptable value as
well. Just make sure it matches RECIPIENT_DELIMITER in your
tmdarc.
MTA Configuration (Exim)
Edit your Exim run time configuration file as follows:
MAIN CONFIGURATION
-
TMDA uses sendmail's `-f' option to set the envelope sender
address on outgoing messages. By default this option is only
available to Exim's "trusted users".
From the Exim Specification:
"A trusted user is root or the Exim user or any user listed in the
trusted_users configuration option, or any user for whom the
currently set group is the Exim group (if defined) or whose current
group or any supplementary group is one of those listed in the
trusted_groups configuration option."
It is recommended that you become a trusted-user, or else the
client side of TMDA becomes much less functional.
DIRECTORS CONFIGURATION
-
TMDA is heavily based on user "extension addresses" (e.g,
username+extension@domain.dom), and your Exim must be able
to understand them. It doesn't by default. Both
+ and - are an acceptable
values for the suffix, just make sure it matches
RECIPIENT_DELIMITER in your tmdarc.
Add the following two lines to both the userforward and
the localuser directors if they are not there already:
suffix = -* # or "+*" if you prefer "user+suffix" addresses
suffix_optional
TRANSPORTS CONFIGURATION
-
TMDA receives much of it's information about the envelope of
an incoming message from environment variables set by the MTA. Most
importantly, SENDER (the full envelope sender address),
RECIPIENT (the full envelope recipient address), and
EXT or EXTENSION (the recipient
address extension). Exim currently sets only the first, so you
must set the other two using the environment
pipe option.
Set environment as follows under the
address_pipe transport:
address_pipe:
driver = pipe
return_fail_output
environment = EXTENSION=${sg{$local_part_suffix}{(^\\-|^\\+)}{}}:\
RECIPIENT=$local_part$local_part_suffix@$domain
|