On Tue, Sep 06, 2011 at 07:58:49PM +0100, Arkadiusz Miskiewicz wrote:
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug.
> 
> http://bugs.exim.org/show_bug.cgi?id=1147
>            Summary: builtin list counting feature
>            Product: Exim
>            Version: 4.76
>           Platform: Other
>         OS/Version: Linux
>             Status: NEW
>           Severity: wishlist
>           Priority: medium
>          Component: Unfiled
>         AssignedTo: ni...@exim.org
>         ReportedBy: ar...@maven.pl
>                 CC: exim-dev@exim.org
> 
> 
> I'm looking for a expansion feature that would allow to count elements in
> lists. 
> 
> For example I had recently tons of spam with:
> From: a...@111.pl, b...@222.pl, c...@333.pl, ...
> (multiple addresses in From)
> 
> and I've tried to make a condition like "if count(addresses($h_from)) > 1"
> 
> exim-users people came up with this ugly (but working) hack:
> 
>   # DEBUG #
>   warn    set acl_m_sender_count = ${reduce \
>                            {>, ${addresses:$h_from:} } \
>                            { 0 } \
>                            {${eval:$value+1}} \
>                           }
>             logwrite       = Found $acl_m_sender_count senders in From header
> 
> This feature request is about adding some smart "count" expansion that would
> allow to count members in lists.

How about:

   ${eval:${strlen:${sg{item1, item2 ,item3, item4}{[^,]*}{}}}+1}

or in your example above, you can just test for the presence of a
comma in the string.


Steve


-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim 
details at http://www.exim.org/ ##

Reply via email to