Exim - forward after tmda confirmation
Russell Robinson <[email protected]>
| Newsgroups | gmane.mail.spam.tmda.user |
|---|---|
| Organization | Open Concepts Pty Ltd |
| Message-ID | <[email protected]> |
Hi,
I've got TMDA working beautifully with exim and tmda-ofmipd and with a
generic virtual user feature I've developed.
I'll send details about the virtual user stuff shortly, because I
think it will help others.
I use TMDA system wide, so my .forward files do *not* contain the TMDA
processing.
One problem I'm trying to nut out....
I want to create a user that requires TMDA processing (confirmation
etc.).
But, *after* TMDA says "ok to deliver", I would like delivery to be
processed via the .forward file.
Effectively this creates a TMDA-protected mail box that gets delivered
to someone entirely different.
The problem is that the order of router processing in exim means that
the .forward file is not processed.
Here are the relevant routers:
tmda_domain_process:
driver = accept
# RJR 24/1/07: only use this router for "virtual" domains
domains = lsearch;DOMAIN_DEFS
# set router home directory from user name
router_home_directory = ${lookup{$domain}lsearch{DOMAIN_DEFS}{HOME_DIRS/$value/mail/$local_part}}
require_files = +$home/.tmda
user = ${lookup{$domain}lsearch{DOMAIN_DEFS}{$value}}
no_verify
no_expn
local_part_suffix = -*
local_part_suffix_optional
transport = tmda_domain_pipe
#
# RJR 24/1/07: "virtual" domain .forward support
#
domain_forward:
driver = redirect
# RJR 22/1/07 - enabled next two lines for TMDA
local_part_suffix = +* : -*
local_part_suffix_optional
# only for "virtual" domains
domains = lsearch;DOMAIN_DEFS
# set router home directory from user name
router_home_directory = ${lookup{$domain}lsearch{DOMAIN_DEFS}{HOME_DIRS/$value}}
require_files = +${lookup{$domain}lsearch{DOMAIN_DEFS}{$home/mail/$local_part/.forward}}
file = $home/mail/$local_part/.forward
# allow_filter
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
I can skip tell the tmda_domain_process router to skip if there is a
particular field present, but that sounds easy to spoof.
Ideally, I think I want a command that says "check the confirmation
status of this message" (i.e. the HMAC cookie) and use that, along
with the presence of the .forward file to force skipping of the
tmda_domain_process router.
Any suggestions before I start hacking the tmda-rfilter to do this
for me?
--
Best regards,
Russell mailto:[email protected]