







# add a director at the bottom of the director section of the config file unknownuser: driver = smartuser transport = unknownuser_pipe no_verify # add a transport unknownuser_pipe: driver = pipe command = /opt/exim/util/baduser.sh ignore_status return_output user = nobody


| MTA | Maturity | Security | Features | Performance | Sendmail Compatibility | Modular |
| qmail | medium | high | high | high | addons | yes |
| Sendmail | high | low | high | low | yes | no |
| Postfix | medium | high | medium | high | yes | yes |
| exim | medium | low | high | medium | yes | no |
| Courier | low | medium | high | medium | optional | yes |
Maturity depends on the number of years it has had popular acceptance; for all of these open-source Mail Transport Agents, it also suggests how many eyes have been looking for bugs in the source code.
Security is a function of whether the Mail Transport Agent was designed for potential security problems from the outset. Exim's low rating is because the author expressly said he isn't a security expert and as such hasn't performed a complete audit; there haven't been any security holes found, unlike in sendmail, but if there ever were, there was the potential for a worse hole than in qmail.
The Features column only marks down Postfix, because Postfix is young and the focus has been on security and basic features. However, if your main requirement is the fastest Mail Transport Agent, postfix is a good choice.
Sendmail Compatibility refers to whether you can 'drop in' a new Mail Transport Agent and programs which expect the '/usr/bin/sendmail' binary will work with no other changes.
Performance depends entirely on your needs; sendmail can do just fine on many thousands of email messages daily, perhaps up to a few thousands an hour. Exim has been used on hosts sending more than 10,000 emails hourly; qmail and postfix at least twice that and probably much more.
In the balance, for my servers, I was most interested in a Mail Transport Agent that wouldn't drive me up the wall when I wanted to make changes, since I'm a bear with little brain (or memory for what I did six months ago when I last changed something). So far I've been entirely happy with Exim.



# MAIN CONFIGURATION SETTINGS
primary_hostname = coder.com
local_domains = "matrix.coder.com :\
engine.coder.com"
local_domains_include_host = true
never_users = root
host_accept_relay = localhost
relay_domains = "matrix.coder.com :\
engine.coder.com"
sender_verify
trusted_users = mail:coder
end
# TRANSPORTS CONFIGURATION
remote_smtp:
driver = smtp
local_delivery:
driver = appendfile
file = /var/mail/${local_part}
delivery_date_add
envelope_to_add
return_path_add
group = mail
mode = 0660
address_pipe:
driver = pipe
return_output
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
address_reply:
driver = autoreply
end
# DIRECTORS CONFIGURATION
# Specifies how local addresses are handled
system_aliases:
driver = aliasfile
file = /etc/aliases
search_type = lsearch
user = coder
group = mail
file_transport = address_file
pipe_transport = address_pipe
userforward:
driver = forwardfile
file = .forward
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
localuser:
driver = localuser
transport = local_delivery
end
# ROUTERS CONFIGURATION
# Specifies how remote addresses are handled
lookuphost:
driver = lookuphost
transport = remote_smtp
end
RETRY CONFIGURATION
* * F,2h,15m; G,16h,1h,1.5; F,4d,8h
# REWRITE CONFIGURATION
end
# AUTHENTICATION CONFIGURATION
end
