our
@ISA
=
qw()
;
sub
new {
my
$class
=
shift
;
$class
=
ref
(
$class
) ||
$class
;
my
(
$main
,
$msg
,
$options
) =
@_
;
my
$self
= {
'main'
=>
$main
,
'msg'
=>
$msg
,
'options'
=>
$options
,
'conf'
=>
$main
->{conf},
};
bless
(
$self
,
$class
);
my
$permsgstatus
=
Mail::SpamAssassin::PerMsgStatus->new(
$self
->{main},
$msg
);
$msg
->extract_message_metadata (
$permsgstatus
);
$permsgstatus
->finish();
$self
;
}
sub
report {
my
(
$self
) =
@_
;
$self
->{report_return} = 0;
$self
->{report_available} = 0;
my
$text
=
$self
->{main}->remove_spamassassin_markup(
$self
->{msg});
$self
->{main}->call_plugins(
"plugin_report"
, {
report
=>
$self
,
text
=> \
$text
,
msg
=>
$self
->{msg} });
$self
->delete_fulltext_tmpfile();
if
(
$self
->{report_available} == 0) {
warn
"reporter: no reporting methods available, so couldn't report\n"
;
}
return
$self
->{report_return};
}
sub
revoke {
my
(
$self
) =
@_
;
$self
->{revoke_return} = 0;
$self
->{revoke_available} = 0;
my
$text
=
$self
->{main}->remove_spamassassin_markup(
$self
->{msg});
$self
->{main}->call_plugins(
"plugin_revoke"
, {
revoke
=>
$self
,
text
=> \
$text
,
msg
=>
$self
->{msg} });
if
(
$self
->{revoke_available} == 0) {
warn
"reporter: no revoke methods available, so couldn't revoke\n"
;
}
return
$self
->{revoke_return};
}
sub
create_fulltext_tmpfile {
Mail::SpamAssassin::PerMsgStatus::create_fulltext_tmpfile(
@_
);
}
sub
delete_fulltext_tmpfile {
Mail::SpamAssassin::PerMsgStatus::delete_fulltext_tmpfile(
@_
);
}
sub
enter_helper_run_mode {
Mail::SpamAssassin::PerMsgStatus::enter_helper_run_mode(
@_
);
}
sub
leave_helper_run_mode {
Mail::SpamAssassin::PerMsgStatus::leave_helper_run_mode(
@_
);
}
1;