Provided by: libmail-box-perl_2.110-1_all bug

NAME

       Mail::Message::Head::SpamGroup - spam fighting related header fields

INHERITANCE

        Mail::Message::Head::SpamGroup
          is a Mail::Message::Head::FieldGroup
          is a Mail::Reporter

SYNOPSIS

        my $sg = Mail::Message::Head::SpamGroup->new(head => $head, ...);
        $head->addSpamGroup($sg);

        my $sg = $head->addSpamGroup( <options> );
        $sg->delete;

        my @sgs = $head->spamGroups;

DESCRIPTION

       A spam group is a set of header fields which are added by spam detection and spam fighting
       software.  This class knows various details about that software.

       See documentation in the base class.

METHODS

       See documentation in the base class.

   Constructors
       See documentation in the base class.

       $obj->clone()
           See "Constructors" in Mail::Message::Head::FieldGroup

       $obj->fighter(NAME, [SETTINGS])
       Mail::Message::Head::SpamGroup->fighter(NAME, [SETTINGS])
           Get the SETTINGS of a certain spam-fighter, optionally after setting them.  The
           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])
       Mail::Message::Head::SpamGroup->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()
       Mail::Message::Head::SpamGroup->implementedTypes()
           See "Constructors" in Mail::Message::Head::FieldGroup

       $obj->isSpamGroupFieldName(NAME)
       Mail::Message::Head::SpamGroup->isSpamGroupFieldName(NAME)
       $obj->knownFighters()
       Mail::Message::Head::SpamGroup->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.

       Mail::Message::Head::SpamGroup->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
       See documentation in the base class.

       $obj->add((FIELD, VALUE) | OBJECT)
           See "The header" in Mail::Message::Head::FieldGroup

       $obj->addFields([FIELDNAMES])
           See "The header" in Mail::Message::Head::FieldGroup

       $obj->attach(HEAD)
           See "The header" in Mail::Message::Head::FieldGroup

       $obj->delete()
           See "The header" in Mail::Message::Head::FieldGroup

       $obj->fieldNames()
           See "The header" in Mail::Message::Head::FieldGroup

       $obj->fields()
           See "The header" in Mail::Message::Head::FieldGroup

       $obj->head()
           See "The header" in Mail::Message::Head::FieldGroup

   Access to the header
       See documentation in the base class.

       $obj->software()
           See "Access to the header" in Mail::Message::Head::FieldGroup

       $obj->type()
           See "Access to the header" in Mail::Message::Head::FieldGroup

       $obj->version()
           See "Access to the header" in Mail::Message::Head::FieldGroup

   Internals
       See documentation in the base class.

       $obj->collectFields([NAME])
           See "Internals" in Mail::Message::Head::FieldGroup

       $obj->detected(TYPE, SOFTWARE, VERSION)
           See "Internals" in Mail::Message::Head::FieldGroup

   Error handling
       See documentation in the base class.

       $obj->AUTOLOAD()
           See "Error handling" in Mail::Reporter

       $obj->addReport(OBJECT)
           See "Error handling" in Mail::Reporter

       $obj->defaultTrace([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
       Mail::Message::Head::SpamGroup->defaultTrace([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL,
       CALLBACK])
           See "Error handling" in Mail::Reporter

       $obj->details()
           See "Error handling" in Mail::Message::Head::FieldGroup

       $obj->errors()
           See "Error handling" in Mail::Reporter

       $obj->log([LEVEL [,STRINGS]])
       Mail::Message::Head::SpamGroup->log([LEVEL [,STRINGS]])
           See "Error handling" in Mail::Reporter

       $obj->logPriority(LEVEL)
       Mail::Message::Head::SpamGroup->logPriority(LEVEL)
           See "Error handling" in Mail::Reporter

       $obj->logSettings()
           See "Error handling" in Mail::Reporter

       $obj->notImplemented()
           See "Error handling" in Mail::Reporter

       $obj->print([FILEHANDLE])
           See "Error handling" in Mail::Message::Head::FieldGroup

       $obj->report([LEVEL])
           See "Error handling" in Mail::Reporter

       $obj->reportAll([LEVEL])
           See "Error handling" in Mail::Reporter

       $obj->trace([LEVEL])
           See "Error handling" in Mail::Reporter

       $obj->warnings()
           See "Error handling" in Mail::Reporter

   Cleanup
       See documentation in the base class.

       $obj->DESTROY()
           See "Cleanup" in Mail::Reporter

DETAILS

   Spam fighting fields
       Detected spam fighting software

       The Mail::Message::Head::SpamGroup class can be used to detect fields which were produced
       by different spam fighting software.

       •   SpamAssassin

           These fields are added by Mail::SpamAssassin, which is the central implementation of
           the spam-assassin package.  The homepage of this GPL'ed project can be found at
           <http://spamassassin.org>.

       •   Habeas-SWE

           Habeas tries to fight spam via the standard copyright protection mechanism: Sender
           Warranted E-mail (SWE). Only when you have a contract with Habeas, you are permitted
           to add a few copyrighted lines to your e-mail. Spam senders will be refused a
           contract.  Mail clients which see these nine lines are (quite) sure that the message
           is sincere.

           See <http://www.habeas.com> for all the details on this commercial product.

       •   MailScanner

           The MailScanner filter is developed and maintained by transtec Computers.  The
           software is available for free download from
           <http://www.sng.ecs.soton.ac.uk/mailscanner/>.  Commercial support is provided via
           <http://www.mailscanner.biz>.

DIAGNOSTICS

       Error: Package $package does not implement $method.
           Fatal error: the specific package (or one of its superclasses) does not implement this
           method where it should. This message means that some other related classes do
           implement this method however the class at hand does not.  Probably you should
           investigate this and probably inform the author of the package.

SEE ALSO

       This module is part of Mail-Box distribution version 2.110, built on January 05, 2014.
       Website: http://perl.overmeer.net/mailbox/

LICENSE

       Copyrights 2001-2014 by [Mark Overmeer]. For other contributors see ChangeLog.

       This program is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.  See http://www.perl.com/perl/misc/Artistic.html