man Mail::Message::Head::ListGroup () - mailinglist related header fields
NAME
Mail::Message::Head::ListGroup - mailinglist related header fields
INHERITANCE
Mail::Message::Head::ListGroup is a Mail::Message::Head::FieldGroup is a Mail::Reporter
SYNOPSIS
my $lg = Mail::Message::Head::ListGroup->new(head => $head, ...); $head->addListGroup($lg);
my $lg = $head->addListGroup(...);
$lg->delete;
DESCRIPTION
A list group is a set of header fields which are added by mailing-list managing software. This class knowns various details about that software.
The knowledge and test messages which are used to initially implement this module is taken from Mail::ListDetector, written by Michael Stevens <mailto:michael@etla.org>. The logic is redesigned to add flexibility and use the powerful MailBox features.
METHODS
Constructors
$obj->address Returns a Mail::Message::Field::Address object (or CWundef) which defines the posting address of the mailing list.
$obj->clone See Constructors in Mail::Message::Head::FieldGroup
$obj->from(HEAD|MESSAGE) Create a CWMail::Message::Head::ListGroup based in the specified MESSAGE or message HEAD.
$obj->implementedTypes
Mail::Message::Head::ListGroup->implementedTypes See Constructors in Mail::Message::Head::FieldGroup
$obj->listname Returns the name of the mailing list, which is usually a part of the e-mail address which is used to post the messages to.
Mail::Message::Head::ListGroup->new(FIELDS, OPTIONS) Construct an object which maintains one set of mailing list headers
Option Defined in Default address C<undef> head L<Mail::Message::Head::FieldGroup> C<undef> listname <derived from address> log L<Mail::Reporter> C<'WARNINGS'> rfc C<undef> software L<Mail::Message::Head::FieldGroup> C<undef> trace L<Mail::Reporter> C<'WARNINGS'> type L<Mail::Message::Head::FieldGroup> C<undef> version L<Mail::Message::Head::FieldGroup> C<undef>. address STRING|OBJECT Address of the mailing list, which may be specified as STRING or e-mail containing object (a Mail::Address or Mail::Identity. In any case, the data is converted into a Mail::Identity. . head HEAD . listname STRING A short textual representation of the mailing-list. . log LEVEL . rfc 'rfc2919'|'rfc2369' Defines the mailing list software follows an rfc. . software STRING . trace LEVEL . type STRING . version STRING
$obj->rfc When the mailing list software follows the guidelines of one of the dedicated RFCs, then this will be returned otherwise CWundef. The return values can be CWrfc2919, CWrfc2369, or CWundef.
The header
$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
$obj->isListGroupFieldName(NAME)
Mail::Message::Head::ListGroup->isListGroupFieldName(NAME)
$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
$obj->collectFields Scan the header for fields which are usually contained in mailing list software. This method is automatically called when a list group is constructed from() an existing header or message. Returned are the names of the list header fields found, in scalar context the amount. An empty list/zero indicates that this is not a mailing list message. Please warn the author of MailBox if you see that to few or too many fields are included.
$obj->detected(TYPE, SOFTWARE, VERSION) See Internals in Mail::Message::Head::FieldGroup
Error handling
$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::ListGroup->defaultTrace([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK]) See Error handling in Mail::Reporter
$obj->details Produce information about the detected/create list group, which may be helpful during debugging, by default to the selected file handle.
$obj->errors See Error handling in Mail::Reporter
$obj->log([LEVEL [,STRINGS]])
Mail::Message::Head::ListGroup->log([LEVEL [,STRINGS]]) See Error handling in Mail::Reporter
$obj->logPriority(LEVEL)
Mail::Message::Head::ListGroup->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
$obj->DESTROY See Cleanup in Mail::Reporter
$obj->inGlobalDestruction See Cleanup in Mail::Reporter
DIAGNOSTICS
Error: Cannot convert $string into an address object
The new(address) is coerced into a Mail::Message::Field::Address, which fails. Have a look at Mail::Message::Field::Address::coerce() to see what valid arguments are.
Error: Package CW$package does not implement CW$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.
DETAILS
Mailing list fields
Detected lists
The Mail::Message::Head::ListGroup class can detect many different mailing lists, some of which are very popular and some of which are rare.
Numerous fields in a header are addded when the message is passed through a mailing list server. Each list software has defined its own fields, sometimes woth conflicting definitions. There are also two RFCs about mailing list: CWrfc2919 and CWrfc2369.
The following lists are currently detected. Between parenthesis is the string returned by type() when that differs from the software name.
- * CommuniGate
- Legacy commercial MacOS implementation by Stalker Software Inc. <http://www.stalker.com/mac/default.html>
- * CommuniGate Pro (CommuniGatePro)
- Commercial rfc2919 compliant implementation by Stalker Software Inc. <http://www.stalker.com>
- * Ecartis
- Commercial mailing list manager, formerly known as Listar. Produced by NodeRunner Computing. See <http://www.ecartis.com>.
- * Ezmlm
- Open Source mailing list manager, available from <http://www.ezmlm.org>.
- * FML
- Open Source mailing list manager, see <http://www.fml.org>.
- * Listar
- Old name for Ecartis.
- * Listbox
- Mailing lists defined at <http://listbox.com>.
- * Mailman
- GNU's mailing list manager, available from <http://www.list.org>.
- * Majordomo
- Free (licenced) mailing list manager by Great Circle Associates, available from <http://www.greatcircle.com/majordomo/>
- * Smartlist
- Related to procmail, as expressed by their shared main page at <http://www.procmail.org/>.
- * Yahoo! Groups (YahooGroups)
- Mailing lists defined at <http://groups.yahoo.com>.
- * Listserv
- Commercial mailing list manager, produced by L-Soft. See <http://www.lsoft.com/>.
REFERENCES
See the MailBox website at <http://perl.overmeer.net/mailbox/> for more details.
COPYRIGHTS
Distribution version 2.063. Written by Mark Overmeer (mark@overmeer.net). See the ChangeLog for other contributors.
Copyright (c) 2001-2003 by the author(s). All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.