Linux sagir-us1.hostever.us 5.14.0-570.51.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 8 09:41:34 EDT 2025 x86_64
LiteSpeed
Server IP : 104.247.108.91 & Your IP : 216.73.216.26
Domains : 74 Domain
User : georgeto
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
perl5 /
vendor_perl /
Mail /
SpamAssassin /
Delete
Unzip
Name
Size
Permission
Date
Action
Bayes
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
BayesStore
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
Conf
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
Locker
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
Logger
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
Message
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
Plugin
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
Util
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
AICache.pm
5.6
KB
-r--r--r--
2021-04-09 08:28
ArchiveIterator.pm
34.08
KB
-r--r--r--
2021-04-09 08:28
AsyncLoop.pm
23.56
KB
-r--r--r--
2021-04-09 08:28
AutoWhitelist.pm
9.89
KB
-r--r--r--
2021-04-09 08:28
Bayes.pm
4.82
KB
-r--r--r--
2021-04-09 08:28
BayesStore.pm
22.97
KB
-r--r--r--
2021-04-09 08:28
Client.pm
13.37
KB
-r--r--r--
2021-04-09 08:28
Conf.pm
166.61
KB
-r--r--r--
2021-04-09 08:28
Constants.pm
13.84
KB
-r--r--r--
2021-04-09 08:28
DBBasedAddrList.pm
5.22
KB
-r--r--r--
2021-04-09 08:28
Dns.pm
21.81
KB
-r--r--r--
2021-04-09 08:28
DnsResolver.pm
33.82
KB
-r--r--r--
2021-04-09 08:28
HTML.pm
34.26
KB
-r--r--r--
2021-04-09 08:28
Locales.pm
4.08
KB
-r--r--r--
2021-04-09 08:28
Locker.pm
2.11
KB
-r--r--r--
2021-04-09 08:28
Logger.pm
11.13
KB
-r--r--r--
2021-04-09 08:28
MailingList.pm
5.13
KB
-r--r--r--
2021-04-09 08:28
Message.pm
43.48
KB
-r--r--r--
2021-04-09 08:28
NetSet.pm
10.48
KB
-r--r--r--
2021-04-09 08:28
PerMsgLearner.pm
4.91
KB
-r--r--r--
2021-04-09 08:28
PerMsgStatus.pm
107.11
KB
-r--r--r--
2021-04-09 08:28
PersistentAddrList.pm
4.27
KB
-r--r--r--
2021-04-09 08:28
Plugin.pm
30.88
KB
-r--r--r--
2021-04-09 08:28
PluginHandler.pm
7.22
KB
-r--r--r--
2021-04-09 08:28
RegistryBoundaries.pm
7.81
KB
-r--r--r--
2021-04-09 08:28
Reporter.pm
3.04
KB
-r--r--r--
2021-04-09 08:28
SQLBasedAddrList.pm
13.21
KB
-r--r--r--
2021-04-09 08:28
SpamdForkScaling.pm
27.23
KB
-r--r--r--
2021-04-09 08:28
SubProcBackChannel.pm
4.45
KB
-r--r--r--
2021-04-09 08:28
Timeout.pm
10.41
KB
-r--r--r--
2021-04-09 08:28
Util.pm
65.61
KB
-r--r--r--
2021-04-09 08:28
Save
Rename
# <@LICENSE> # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to you under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at: # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # </@LICENSE> =head1 NAME Mail::SpamAssassin::PerMsgLearner - per-message status (spam or not-spam) =head1 SYNOPSIS my $spamtest = new Mail::SpamAssassin ({ 'rules_filename' => '/etc/spamassassin.rules', 'userprefs_filename' => $ENV{HOME}.'/.spamassassin/user_prefs' }); my $mail = $spamtest->parse(); my $status = $spamtest->learn($mail,$id,$isspam,$forget); my $didlearn = $status->did_learn(); $status->finish(); =head1 DESCRIPTION The Mail::SpamAssassin C<learn()> method returns an object of this class. This object encapsulates all the per-message state for the learning process. =head1 METHODS =over 4 =cut package Mail::SpamAssassin::PerMsgLearner; use strict; use warnings; # use bytes; use re 'taint'; use Mail::SpamAssassin; use Mail::SpamAssassin::PerMsgStatus; use Mail::SpamAssassin::Bayes; use Mail::SpamAssassin::Logger; our @ISA = qw(); ########################################################################### sub new { my $class = shift; $class = ref($class) || $class; my ($main, $msg) = @_; my $self = { 'main' => $main, 'msg' => $msg, 'learned' => 0, 'master_deadline' => $msg->{master_deadline}, # dflt inherited from msg }; $self->{conf} = $self->{main}->{conf}; $self->{bayes_scanner} = $self->{main}->{bayes_scanner}; bless ($self, $class); $self; } ########################################################################### # $status->learn_spam($id) # # Learn the message as spam. # # C<$id> is an optional message-identification string, used internally # to tag the message. If it is C<undef>, one will be generated. # It should be unique to that message. # # This is a semi-private API; callers should use # C<$spamtest-E<gt>learn($mail,$id,$isspam,$forget)> instead. sub learn_spam { my ($self, $id) = @_; # bug 4096 # if ($self->{main}->{learn_with_whitelist}) { # $self->{main}->add_all_addresses_to_blacklist ($self->{msg}); # } # use the real message-id here instead of mass-check's idea of an "id", # as we may deliver the msg into another mbox format but later need # to forget it's training. $self->{learned} = $self->{bayes_scanner}->learn (1, $self->{msg}, $id); } ########################################################################### # $status->learn_ham($id) # # Learn the message as ham. # # C<$id> is an optional message-identification string, used internally # to tag the message. If it is C<undef>, one will be generated. # It should be unique to that message. # # This is a semi-private API; callers should use # C<$spamtest-E<gt>learn($mail,$id,$isspam,$forget)> instead. sub learn_ham { my ($self, $id) = @_; # bug 4096 # if ($self->{main}->{learn_with_whitelist}) { # $self->{main}->add_all_addresses_to_whitelist ($self->{msg}); # } $self->{learned} = $self->{bayes_scanner}->learn (0, $self->{msg}, $id); } ########################################################################### # $status->forget($id) # # Forget about a previously-learned message. # # C<$id> is an optional message-identification string, used internally # to tag the message. If it is C<undef>, one will be generated. # It should be unique to that message. # # This is a semi-private API; callers should use # C<$spamtest-E<gt>learn($mail,$id,$isspam,$forget)> instead. sub forget { my ($self, $id) = @_; # bug 4096 # if ($self->{main}->{learn_with_whitelist}) { # $self->{main}->remove_all_addresses_from_whitelist ($self->{msg}); # } $self->{learned} = $self->{bayes_scanner}->forget ($self->{msg}, $id); } ########################################################################### =item $didlearn = $status->did_learn() Returns C<1> if the message was learned from or forgotten successfully. =cut sub did_learn { my ($self) = @_; return ($self->{learned}); } ########################################################################### =item $status->finish() Finish with the object. =cut sub finish { my $self = shift; %{$self} = (); } ########################################################################### 1; __END__ =back =head1 SEE ALSO Mail::SpamAssassin(3) spamassassin(1)