METHODS

See METHODS in Mail::Reporter

Constructors

$obj->clone
See clone in Mail::Message::Head::FieldGroup.
$obj->fighter( NAME, [SETTINGS] )
$class->fighter( NAME, [SETTINGS] )

Get the SETTINGS of a certain spam-fighter, optionally after setting them. The manual knownFighters() method returns the defined names. The names are case-sensitive.

Option Default

fields

<required>

isspam

<required>

version

undef

fields => REGEXP
The regular expression which indicates which of the header fields are added by the spam fighter software.
isspam => CODE
The CODE must return true or false, to indicate whether the spam fighter thinks that the message contains spam. The CODE ref is called with the spamgroup object (under construction) and the header which is inspected.
version => CODE
Can be called to collect the official name and the version of the software which is used to detect spam. The CODE ref is called with the spamgroup object (under construction) and the header which is inspected.
» Example: adding your own spam-fighter definitions
 Mail::Message::Head::SpamGroup->fighter( 'MY-OWN',
    fields => qw/^x-MY-SPAM-DETECTOR-/,
    isspam => sub { my ($sg, $head) = @_; $head->fields > 100 }
   );
$obj->from( HEAD|MESSAGE, OPTIONS )

Returns a list of Mail::Message::Head::SpamGroup objects, based on the specified MESSAGE or message HEAD.

Option Default

types

undef

types => ARRAY-OF-NAMES
Only the specified types will be tried. If the ARRAY is empty, an empty list is returned. Without this option, all sets are returned.
$obj->habeasSweFieldsCorrect( [MESSAGE|HEAD] )
$class->habeasSweFieldsCorrect( [MESSAGE|HEAD] )

Returns a true value if the MESSAGE or HEAD contains Habeas-SWE fields which are correct. Without argument, this is used as instance method on an existing Spam-Group.

» Example: checking Habeas-SWE fields
 if(Mail::Message::Head::SpamGroup->habeasSweFieldsCorrect($message))
 {   $message->label(spam => 0);
 }

 my $sg = $message->head->spamGroups('Habeas-SWE');
 if($sg->habeasSweFieldsCorrect) { ... };

 use List::Util 'first';
 if(first {$_->habeasSweFieldsCorrect} $head->spamGroups)
 {   ...
 }
$obj->implementedTypes
$class->implementedTypes
See implementedTypes in Mail::Message::Head::FieldGroup.
$obj->isSpamGroupFieldName( NAME )
$class->isSpamGroupFieldName( NAME )
$obj->knownFighters
$class->knownFighters

Returns an unsorted list of all names representing pre-defined spam-fighter software. You can ask details about them, and register more fighters with the fighter() method.

$class->new( FIELDS, OPTIONS )

Construct an object which maintains one set of fields which were added by spam fighting software.

Option Defined in Default

head

Mail::Message::Head::FieldGroup

undef

log

Mail::Reporter

'WARNINGS'

software

Mail::Message::Head::FieldGroup

undef

trace

Mail::Reporter

'WARNINGS'

type

Mail::Message::Head::FieldGroup

undef

version

Mail::Message::Head::FieldGroup

undef

head => HEAD
log => LEVEL
software => STRING
trace => LEVEL
type => STRING
version => STRING
$obj->spamDetected( [BOOLEAN] )

Returns (after setting) whether this group of spam headers thinks that this is spam. See Mail::Message::Head::Complete::spamDetected().

» Example:
  die if $head->spamDetected;

  foreach my $sg ($head->spamGroups)
  {   print $sg->type." found spam\n" if $sg->spamDetected;
  }

The header

$obj->add( (FIELD, VALUE) | OBJECT )
See add in Mail::Message::Head::FieldGroup.
$obj->addFields( [FIELDNAMES] )
See addFields in Mail::Message::Head::FieldGroup.
$obj->attach( HEAD )
See attach in Mail::Message::Head::FieldGroup.
$obj->delete
See delete in Mail::Message::Head::FieldGroup.
$obj->fieldNames
See fieldNames in Mail::Message::Head::FieldGroup.
$obj->fields
See fields in Mail::Message::Head::FieldGroup.

Access to the header

$obj->software
See software in Mail::Message::Head::FieldGroup.
$obj->type
See type in Mail::Message::Head::FieldGroup.
$obj->version
See version in Mail::Message::Head::FieldGroup.

Internals

$obj->collectFields( [NAME] )
See collectFields in Mail::Message::Head::FieldGroup.
$obj->detected( TYPE, SOFTWARE, VERSION )
See detected in Mail::Message::Head::FieldGroup.

Error handling

$obj->AUTOLOAD
See AUTOLOAD in Mail::Reporter.
$obj->addReport( OBJECT )
See addReport in Mail::Reporter.
$obj->defaultTrace( [LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK] )
$class->defaultTrace( [LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK] )
See defaultTrace in Mail::Reporter.
$obj->details
See details in Mail::Message::Head::FieldGroup.
$obj->errors
See errors in Mail::Reporter.
$obj->log( [LEVEL [,STRINGS]] )
$class->log( [LEVEL [,STRINGS]] )
See log in Mail::Reporter.
$obj->logPriority( LEVEL )
$class->logPriority( LEVEL )
See logPriority in Mail::Reporter.
$obj->logSettings
See logSettings in Mail::Reporter.
$obj->notImplemented
See notImplemented in Mail::Reporter.
$obj->print( [FILEHANDLE] )
See print in Mail::Message::Head::FieldGroup.
$obj->report( [LEVEL] )
See report in Mail::Reporter.
$obj->reportAll( [LEVEL] )
See reportAll in Mail::Reporter.
$obj->trace( [LEVEL] )
See trace in Mail::Reporter.
$obj->warnings
See warnings in Mail::Reporter.

Cleanup

$obj->DESTROY
See DESTROY in Mail::Reporter.