Exim router and transport

Hi list,

I’m posting my RT router and transport that handles RT tickets. Adding
two new aliases each time a new queue is created is not neccessary with
this configuration. I use a file to help Exim decide whether the queue
exists:

hostmaster: noc
noc: noc
support: general
info: general
helo: general
contact: general

The file does really contain a “local part → queue” mapping. Mails to
hostmaster@example.com go to the “noc” queue and so do noc@example.com
mails. I the configuration can very easily be changed to check the RT
database to see if the queue exists.

Here’re the relevant parts of the config:

Main section

RT

RT_QUEUES = /etc/exim/rt_queues
domainlist rt_domains = krot.org

Router

rt_router:
driver = accept
domains = +rt_domains
local_parts = lsearch;RT_QUEUES
local_part_suffix = -comment
local_part_suffix_optional
transport = rt_transport

Transport

rt_transport:
driver = pipe
command = /local/bin/rt-mailgate
–queue “${lookup {$local_part} lsearch {RT_QUEUES}}”
–action “${if eq {$local_part_suffix}{-comment} {comment} {correspond}}”
return_path_add
envelope_to_add
delivery_date_add

transport_filter = /usr/bin/spamc

temp_errors = 1 : 73: 75 : 111
log_output

log_fail_output

return_fail_output 
message_prefix =
message_suffix =
user = nobody
group = rt

My rt_transport also lets SpamAssassin to check/tag the message. If the
message gets too high spam score, my modified rt-mailgate just ignores
the message. Just uncomment transport_filter to enable spam checking.

This config is for Exim 4.

Kirill