METHODS

See METHODS in Mail::Reporter

Constructors

$obj->clone

Make a copy of this object. The collected fieldnames are copied and the list type information. No deep copy is made for the header: this is only copied as reference.

$obj->from( HEAD|MESSAGE )

Create a group of fields based on the specified MESSAGE or message HEAD. This may return one or more of the objects, which depends on the type of group. Mailing list fields are all stored in one object, where resent and spam groups can appear more than once.

$obj->implementedTypes
$class->implementedTypes

Returns a list of strings containing all possible return values for type().

$class->new( FIELDS, OPTIONS )

Construct an object which maintains one set of header FIELDS. The FIELDS may be specified as Mail::Message::Field objects or as key-value pairs. The OPTIONS and FIELDS (as key-value pair) can be mixed: they are distinguished by their name, where the fields always start with a capital. The field objects must aways lead the OPTIONS.

Option Defined in Default

head

undef

log

Mail::Reporter

'WARNINGS'

software

undef

trace

Mail::Reporter

'WARNINGS'

type

undef

version

undef

head => HEAD
The header HEAD object is used to store the grouped fields in. If no header is specified, a Mail::Message::Head::Partial is created for you. If you wish to scan the existing fields in a header, then use the from() method.
log => LEVEL
software => STRING
Name of the software which produced the fields.
trace => LEVEL
type => STRING
Group name for the fields. Often the same, or close to the same STRING, as the software option contains.
version => STRING
Version number for the software which produced the fields.

The header

$obj->add( (FIELD, VALUE) | OBJECT )

Add a field to the header, using the field group. When the field group is already attached to a real message header, it will appear in that one as well as being registed in this set. If no header is defined, the field only appears internally.

» Example: adding a field to a detached list group
 my $this = Mail::Message::Head::ListGroup->new(...);
 $this->add('List-Id' => 'mailbox');
 $msg->addListGroup($this);
 $msg->send;
» Example: adding a field to an attached list group
 my $lg = Mail::Message::Head::ListGroup->from($msg);
 $lg->add('List-Id' => 'mailbox');
$obj->addFields( [FIELDNAMES] )

Add some FIELDNAMES to the set.

$obj->attach( HEAD )

Add a group of fields to a message HEAD. The fields will be cloned(!) into the header, so that the field group object can be used again.

» Example: attaching a list group to a message
 my $lg = Mail::Message::Head::ListGroup->new(...);
 $lg->attach($msg->head);
 $msg->head->addListGroup($lg);   # same

 $msg->head->addSpamGroup($sg);   # also implemented with attach
$obj->delete

Remove all the header lines which are combined in this fields group, from the header.

$obj->fieldNames

Return the names of the fields which are used in this group.

$obj->fields

Return the fields which are defined for this group.

Access to the header

$obj->software

Returns the name of the software as is defined in the headers. The may be slightly different from the return value of type(), but usually not too different.

$obj->type

Returns an abstract name for the field group; which software is controling it. undef is returned in case the type is not known. Valid names are group type dependent: see the applicable manual pages. A list of all types can be retrieved with implementedTypes().

$obj->version

Returns the version number of the software used to produce the fields. Some kinds of software do leave such a trace, other cases will return undef

Internals

$obj->collectFields( [NAME] )

Scan the header for fields which are usually contained in field group with the specified NAME. For mailinglist groups, you can not specify a NAME: only one set of headers will be found (all headers are considered to be produced by exactly one package of mailinglist software).

This method is automatically called when a field group is constructed via from() on an existing header or message.

Returned are the names of the list header fields found, in scalar context the amount of fields. An empty list/zero indicates that there was no group to be found.

Please warn the author of MailBox if you see that to few or too many fields are included.

$obj->detected( TYPE, SOFTWARE, VERSION )

Sets the values for the field group type, software, and version, prossibly to undef.

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

Produce information about the detected/created field group, which may be helpful during debugging. A nicely formatted string is returned.

$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] )

Print the group to the specified FILEHANDLE or GLOB. This is probably only useful for debugging purposed. The output defaults to the selected file handle.

$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.