follow up: Reading an array from a flat file (solved)

Helga Mayer helga.mayer at uni-hohenheim.de
Wed Aug 17 20:04:54 CEST 2011


Quoting Mark Martinec <Mark.Martinec+amavis at ijs.si>:

> Helga,
>
>> I have some 50 users (out of 10000) for whom I want to bypass
>> spamchecking. Instead of writing the addresses literally in amavisd.conf
>> I would prefer to store them in a file. Could this be done in
>> amavisd.conf or will I have to modify amavisd ?
>>
>> Will the following code work ?
>>
>> my $path_mailaddr = '/etc/postfix/bypass_spam_checks';
>> my @all_mailaddr = ();
>> open(MAILADDR, "<$path_mailaddr")
>>   || die "cannot open bypass_spam_checks\n";
>> @all_mailaddr = <MAILADDR>;
>
> Stll need to strip newlines from each.
>
>> my %bypass_spam_checks = ();
>> map { $bypass_spam_checks{lc($_)}=1 } (@all_mailaddr);
>
> You are making a local copy of %bypass_spam_checks with a my(),
> instead of using the %Amavis::Conf::bypass_spam_checks,
> so it has no effect.
>
>> close(MAILADDR);
>>
>> /etc/postfix/bypass_spam_checks contains:
>>
>> user1 at mydomain.de
>> user2 at mydomain.de
>> ....
>> user50 at mydomain.de
>
> Why not just use a read_hash to do the work:
>
> @bypass_spam_checks_maps = ( read_hash('/etc/postfix/bypass_spam_checks') );

Yes this works. I got on the wrong track when trying to replace
'qw (user1 at mydomain ...)' instead of putting the value into the file as rhs.

Thank you
Helga




Helga Mayer
Universität Hohenheim
Kommunikations-, Informations- und Medienzentrum (630)
IT-Dienste | Mail

Schloss-Westhof-Süd | 70599 Stuttgart
Tel.:  +49 711 459-22838 | Fax: +49 711 459-23449
https://kim.uni-hohenheim.de




More information about the amavis-users mailing list