diff -urN smeserver-learn-1.0.admin/createlinks smeserver-learn-1.0/createlinks --- smeserver-learn-1.0.admin/createlinks 2016-03-15 07:29:40.102000000 -0400 +++ smeserver-learn-1.0/createlinks 2016-03-15 07:39:54.135000000 -0400 @@ -4,5 +4,6 @@ templates2events("/etc/cron.d/Learn", qw(email-update bootstrap-console-save )); - +safe_touch('root/etc/e-smith/db/configuration/defaults/Learn/Exclude'); +safe_touch('root/etc/e-smith/db/configuration/defaults/Learn/Include'); diff -urN smeserver-learn-1.0.admin/root/usr/bin/Learn.pl smeserver-learn-1.0/root/usr/bin/Learn.pl --- smeserver-learn-1.0.admin/root/usr/bin/Learn.pl 2016-03-15 07:29:40.102000000 -0400 +++ smeserver-learn-1.0/root/usr/bin/Learn.pl 2016-03-15 07:32:10.000000000 -0400 @@ -43,6 +43,9 @@ #getting user list my @users = $adb->users; +#adding admin +my @admin = $adb->get('admin'); +push @users ,@admin; # getting WL before running open(SADB, "/home/e-smith/db/spamassassin"); @@ -55,10 +58,15 @@ my $firstname = $user->prop('FirstName'); my $lastname = $user->prop('LastName'); my $key = $user->key; + # verification if user included or excluded + my @include= split(',',$sadb->get_prop("Learn", "Include")) if $sadb->get_prop("Learn", "Include"); + my @exclude= split(',',$sadb->get_prop("Learn", "Exclude")) if $sadb->get_prop("Learn", "Exclude"); + next if ( defined @exclude and @found = grep { $_ eq $key } @exclude ); + next unless ( ! defined @include or @found = grep { $_ eq $key } @include ); printf("Checking for user (%s): %s %s\n", $key,$firstname, $lastname); - my $MailDir = "/home/e-smith/files/users/" . $key . "/Maildir"; + my $MailDir = ($key eq "admin")? "/home/e-smith/" . "/Maildir" : "/home/e-smith/files/users/" . $key . "/Maildir"; my @modes = ("LearnAsSpam","LearnAsHam","LearnInWL"); foreach my $mode (@modes) {