Mail::ListDetector(3pm) User Contributed Perl Documentation Mail::ListDetector(3pm)NAME
Mail::ListDetector - Perl extension for detecting mailing list messages
SYNOPSIS
use Mail::ListDetector;
DESCRIPTION
This module analyzes mail objects in any of the classes handled by Email::Abstract. It returns a Mail::ListDetector::List object
representing the mailing list.
The RFC2369 mailing list detector is also capable of matching some Mailman and Ezmlm messages. It is deliberately checked last to allow the
more specific Mailman and Ezmlm parsing to happen first, and more accurately identify the type of mailing list involved.
METHODS
new
This method is the core of the module. Pass it a mail object, it will either return a Mail::ListDetector::List object that describes the
mailing list that the message was posted to, or "undef" if it appears not to have been a mailing list post.
register_plugin($plugin_name)
Registers a new plugin module that might recognise lists. Should be a subclass of Mail::ListDetector::Detector::Base, and provide the same
interface as the other detector modules.
You can eval arbitrary perl code with this, so don't do that if that's not what you want.
EMAILS USED
This module includes a number of sample emails from various mailing lists. In all cases, mails are used with permission of the author, and
must not be distributed separately from this archive. If you believe I may have accidentally used your email or content without permission,
contact me, and if this turns out to be the case I will immediately remove it from the latest version of the archive.
BUGS
o A lot of the code applies fairly simple regular expressions to email address to extract information. This may fall over for really
weird email addresses, but I'm hoping no-one will use those for names of mailing lists.
o The majordomo and smartlist recognisers don't have much to go on, and therefore are probably not as reliable as the other detectors.
This is liable to be hard to fix.
o Forwarding messages (for example using procmail) can sometimes break the "Sender: " header information needed to recognise some list
types.
AUTHORS
o Michael Stevens - michael@etla.org.
o Andy Turner - turner@mikomi.org.
o Adam Lazur - adam@lazur.org.
o Peter Oliver - p.d.oliver@mavit.freeserve.co.uk
o Matthew Walker - matthew@walker.wattle.id.au
o Tatsuhiko Miyagawa - miyagawa@bulknews.net
o johnnnnnn - john@phaedrusdeinus.org
o Mik Firestone - mik@racerx.homedns.org
o Simon Cozens - simon@simon-cozens.org
SEE ALSO perl(1). The Mail::Audit::List module, which is a convenient way of using Mail::Audit and Mail::ListDetector together.
perl v5.10.1 2010-06-30 Mail::ListDetector(3pm)
Check Out this Related Man Page
Mail::Message::Head::ListGroup(3pm) User Contributed Perl Documentation Mail::Message::Head::ListGroup(3pm)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 "undef") which defines the posting address of the mailing list.
$obj->clone()
See "Constructors" in Mail::Message::Head::FieldGroup
$obj->from(HEAD|MESSAGE)
Create a "Mail::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 undef
head Mail::Message::Head::FieldGroup undef
listname <derived from address>
log Mail::Reporter 'WARNINGS'
rfc undef
software Mail::Message::Head::FieldGroup undef
trace Mail::Reporter 'WARNINGS'
type Mail::Message::Head::FieldGroup undef
version Mail::Message::Head::FieldGroup 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 "undef". The
return values can be "rfc2919", "rfc2369", or "undef".
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
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: "rfc2919" and "rfc2369".
The following lists are currently detected. Between parenthesis is the string returned by type() when that differs from the software name.
o CommuniGate
Legacy commercial MacOS implementation by Stalker Software Inc. <http://www.stalker.com/mac/default.html>
o CommuniGate Pro (CommuniGatePro)
Commercial rfc2919 compliant implementation by Stalker Software Inc. <http://www.stalker.com>
o Ecartis
Commercial mailing list manager, formerly known as Listar. Produced by NodeRunner Computing. See <http://www.ecartis.com>.
o Ezmlm
Open Source mailing list manager, available from <http://www.ezmlm.org>.
o FML
Open Source mailing list manager, see <http://www.fml.org>.
o Listar
Old name for Ecartis.
o Listbox
Mailing lists defined at <http://listbox.com>.
o Mailman
GNU's mailing list manager, available from <http://www.list.org>.
o Majordomo
Free (licenced) mailing list manager by Great Circle Associates, available from <http://www.greatcircle.com/majordomo/>
o Smartlist
Related to procmail, as expressed by their shared main page at <http://www.procmail.org/>.
o Yahoo! Groups (YahooGroups)
Mailing lists defined at <http://groups.yahoo.com>.
o Listserv
Commercial mailing list manager, produced by L-Soft. See <http://www.lsoft.com/>.
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 $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.105, built on May 07, 2012. Website: http://perl.overmeer.net/mailbox/
LICENSE
Copyrights 2001-2012 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
perl v5.14.2 2012-05-07 Mail::Message::Head::ListGroup(3pm)