Re: [Exim] Dynamically generated list of local users

Top Page
Delete this message
Reply to this message
Author: Vadim Vygonets
Date:  
To: Exim Users
Subject: Re: [Exim] Dynamically generated list of local users
Quoth Phil Pennock on Fri, May 19, 2000:
> Embedded perl.


Heavy. The problem with this approach is that there is an
overhead in every Exim process, not only those that actually run
the Perl functions. Embedded awk anyone? ;) A better idea,
though, would be half-embedded C. A documented interface to
random text-processing C functions in Exim. Then, just write
them and compile them in.

If I were generating lists of all users on the fly (as opposed to
nightly), I would probably do it with an external program that
takes the message and re-submits it back to Exim with lots of
recipient addresses. I'd write it in Ada just to make a point.

> I started looking at multiple ${if ...} nests but it
> started getting really sick even before I had the 'collect all users'
> logic figured out.


I can't think of any way to generate list of all users from
within Exim. Except embedded Perl, that is.

> I used ${originator_uid} but switched it to _gid for
> the example below.


Which means that you can mail all only if you're of this gid and
submit the message locally? Nice. But you can handle similrar
things with a moderated mailing list. It's true that mailing
list security is not really high, though.

> Set ALLPOSTGID. Does Exim interpolate things like
> LOCALDOM into strings as below?


Not into strings. It adds qualify_domain to the naked local
parts.

> #[ directors section ]
> all_users:
>   driver    = smartuser
>   domains    = localhost
>   condition    = ${if eq {$local_part}{all-users} \
>            {${if ={${originator_gid}}{ALLPOSTGID} {yes}{no}}}  {no}}} \


Replace the condition with:

    local_parts = all-users
    condition = ${if ={${originator_gid}}{ALLPOSTGID}{yes}{no}}


>   rewrite    = true


This is the default.

>   headers_add   = "X-List: all-users.LOCALDOM (private)"
>   new_address    = ${perl{all_users}}


Vadik.

-- 
Prof:    So the American government went to IBM to come up with a data
         encryption standard and they came up with ...
Student: EBCDIC!