Hold on a tic. This still looks like it would also skip the original messages that should be archived in the sender's outbox archive.
Doesn't the redirect router (aliases) just check to see if the domain is local and if it is then skip the archive router? Is there some way to determine if the message is being routed to an alias rather than routed to an account? Am I _still_ missing something? Thanks, dean -----Original Message----- From: Chris Wilson [mailto:[email protected]] Sent: Saturday, December 03, 2011 5:36 PM To: Dean Bishop Cc: [email protected] Subject: Re: [exim] Archiving Problems Hi Dean, On Sat, 3 Dec 2011, Dean Bishop wrote: > So my archiving routers are such: > outgoing_archiver: > # works but duplicates messages sent from local to a local alias When you say it duplicates them, do you mean that they appear once in outgoing_local_copy and once in incoming_local_copy, or do they appear multiple times in outgoing_local_copy? > I read the manual on redirect_router and it seems apropos but I can't > see where to put it. In all of your routers which have "driver = redirect". > actually, reading your message again I may be beginning to see the > light. If I put the redirect router at the top of my routers or at > least before the outgoing_archiver router, it's checking to see if the > message is directed at an alias and if it is then skip the > outgoing_archiver. No, if you put all your redirect routers (driver = redirect) before the archivers, then you will get a copy of the message for every address resulting from alias expansion, which is more or less the same as you're seeing now. The aim of adding redirect_router to your redirecting routers is to skip passing through outgoing_archiver and incoming_archiver a second time for each expanded alias, as you are seeing now. You can do this by telling these routers that after redirection, they should start processing the expanded addresses with the router after incoming_archiver, instead of at the top. > aliases: > driver = redirect > data = > ${lookup{$local_part}wildlsearch{/etc/exim/domains/$domain}} > condition = > $(lookup($sender_domain}wildlsearch{/etc/userdomains}} > # this is the important part: > # don't archive redirected emails again! > redirect_router = dnslookup > > Is that sane? Kinda. The condition should evaluate to true or false, not a lookup. But I don't think you even need to add it. Just add "redirect_router = dnslookup" (assuming that dnslookup is the router immediately after incoming_archiver) to all your redirecting routers. Cheers, Chris. -- _____ __ _ \ __/ / ,__(_)_ | Chris Wilson <[email protected]> Cambs UK | / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Ruby/Perl/SQL Developer | \__/_/_/_//_/___/ | We are GNU : free your mind & your software | -- ## List details at https://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
