Re: [exim] filters: delivering to multiple recipients define…

Top Page
Delete this message
Reply to this message
Author: Nick
Date:  
To: exim-users
Subject: Re: [exim] filters: delivering to multiple recipients defined in a single string
On 22/12/15 11:26, Jon Gerdes wrote:
> I've re-read your post and can't see if I am missing something in your
> requirements.


You're right, I should say more about my requirements, as it seems like there
may be no clever trick, notwithstanding my hope for confirmation of potential
solutions like this:


http://serverfault.com/questions/378085/exim-filter-for-unseen-delivery-to-multiple-addresses/

I don't think a static aliases file will do, at least not without some clever
generation script to handle control emails.

I describe what I want to do in an earlier email. Basically I want
spamgourmet-like disposable emails, controlled by the recipient's own command
emails. See:

https://lists.exim.org/lurker/message/20150812.113339.06429ca0.en.html

I subsequently managed to write my own solution, but even after some
experimentation this was nevertheless forced into some contortions. It does
work mostly satisfactorily, but the implementation suffers from the limitations
of exim's supported features (no string variables to speak of, for example) and
possibly my own ignorance (which I hope may be remedied). The resulting filter
is here:

https://github.com/wu-lee/exim-disposable-aliases/blob/master/filter

And the whole package:

https://github.com/wu-lee/exim-disposable-aliases/

I settled on using a filter because the logic requires a lot (for exim) of
nested if/then/elses or ideally switches, SQL lookups and string matches. This
benefits from the clearer conditional syntax in filters, although string
expansions are obviously still necessary. I also experimented with an ACL,
because there are variables available in those, but the problem is that the
logic must be inserted in the right place, but also replicated in part in the
router, and can be entirely skipped by earlier ACLs, which has undesirable
results. (I don't recall the exact details right now, I could dig them up if
required). I have not yet attempted dynamically linked C or Perl, because I am
not convinced the added complexity (implementing, testing, debugging,
installing) would deliver a net improvement. However, examples of this kind of
thing done well are hard to come by.

Cheers

Nick