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.

Extends "DESCRIPTION" in Mail::Message::Head::FieldGroup.

METHODS
Extends "METHODS" in Mail::Message::Head::FieldGroup.

  Constructors
Extends "Constructors" in Mail::Message::Head::FieldGroup.

$obj->address()
    Returns a Mail::Message::Field::Address object (or "undef") which defines the posting address of the mailing list.

$obj->clone()
    Inherited, 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. Improves base, see "Constructors" in Mail::Message::Head::FieldGroup

$any->implementedTypes()
    Inherited, 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.

$class->new($fields, %options)
    Construct an object which maintains one set of mailing list headers Improves base, see "Constructors" in Mail::Message::Head::FieldGroup

     -Option  --Defined in                     --Default
      address                                    undef
      head      Mail::Message::Head::FieldGroup  undef
      listname                                   <derived from address>
      rfc                                        undef
      software  Mail::Message::Head::FieldGroup  undef
      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.

    rfc => 'rfc2919'|'rfc2369'
        Defines the mailing list software follows an rfc.

    software => STRING
    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".

  Attributes
Extends "Attributes" in Mail::Message::Head::FieldGroup.

  The header
Extends "The header" in Mail::Message::Head::FieldGroup.

$obj->add( <$field, $value> | $object )
    Inherited, see "The header" in Mail::Message::Head::FieldGroup

$obj->addFields( [$fieldnames] )
    Inherited, see "The header" in Mail::Message::Head::FieldGroup

$obj->attach($head)
    Inherited, see "The header" in Mail::Message::Head::FieldGroup

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

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

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

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

  Access to the header
Extends "Access to the header" in Mail::Message::Head::FieldGroup.

$any->isListGroupFieldName($name)

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

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

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

  Internals
Extends "Internals" in Mail::Message::Head::FieldGroup.

$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. Improves base, see "Internals" in Mail::Message::Head::FieldGroup

$obj->detected($type, $software, $version)
    Inherited, see "Internals" in Mail::Message::Head::FieldGroup

  Error handling
Extends "Error handling" in Mail::Message::Head::FieldGroup.

$obj->AUTOLOAD()
    Inherited, 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. Improves base, see "Error handling" in Mail::Message::Head::FieldGroup

$obj->notImplemented()
    Inherited, see "Error handling" in Mail::Reporter

$obj->print( [$fh] )
    Inherited, see "Error handling" in Mail::Message::Head::FieldGroup

  Cleanup
Extends "Cleanup" in Mail::Message::Head::FieldGroup.

$obj->DESTROY()
    Inherited, 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 added 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.

•   CommuniGate

    Legacy commercial MacOS implementation by Stalker Software Inc. <https://www.stalker.com/mac/default.html>

•   CommuniGate Pro (CommuniGatePro)

    Commercial rfc2919 compliant implementation by Stalker Software Inc. <https://www.stalker.com>

•   Ecartis

    Commercial mailing list manager, formerly known as Listar. Produced by NodeRunner Computing. See <https://www.ecartis.com>.

•   Ezmlm

    Open Source mailing list manager, available from <https://www.ezmlm.org>.

•   FML

    Open Source mailing list manager, see <https://www.fml.org>.

•   Listar

    Old name for Ecartis.

•   Listbox

    Mailing lists defined at <https://listbox.com>.

•   Mailman

    GNU's mailing list manager, available from <https://www.list.org>.

•   Majordomo

    Free (licenced) mailing list manager by Great Circle Associates, available from <https://www.greatcircle.com/majordomo/>

•   Smartlist

    Related to procmail, as expressed by their shared main page at <https://www.procmail.org/>.

•   Yahoo! Groups (YahooGroups)

    Mailing lists defined at <https://groups.yahoo.com>.

•   Listserv

    Commercial mailing list manager, produced by L-Soft. See <https://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. Cast by new()

Error: class $package does not implement method $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. Cast by notImplemented()

SEE ALSO
This module is part of Mail-Message version 4.03, built on January 26, 2026. Website: http://perl.overmeer.net/CPAN/

LICENSE
For contributors see file ChangeLog.

This software is copyright (c) 2001-2026 by Mark Overmeer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.