.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "Mail::Message::Head::ListGroup 3pm" .TH Mail::Message::Head::ListGroup 3pm "2016-12-27" "perl v5.24.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Mail::Message::Head::ListGroup \- mailinglist related header fields .SH "INHERITANCE" .IX Header "INHERITANCE" .Vb 3 \& Mail::Message::Head::ListGroup \& is a Mail::Message::Head::FieldGroup \& is a Mail::Reporter .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& my $lg = Mail::Message::Head::ListGroup\->new(head => $head, ...); \& $head\->addListGroup($lg); \& \& my $lg = $head\->addListGroup(...); \& \& $lg\->delete; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A \fIlist group\fR is a set of header fields which are added by mailing-list managing software. This class knowns various details about that software. .PP The knowledge and test messages which are used to initially implement this module is taken from Mail::ListDetector, written by Michael Stevens . The logic is redesigned to add flexibility and use the powerful MailBox features. .PP Extends \*(L"\s-1DESCRIPTION\*(R"\s0 in Mail::Message::Head::FieldGroup. .SH "METHODS" .IX Header "METHODS" Extends \*(L"\s-1METHODS\*(R"\s0 in Mail::Message::Head::FieldGroup. .SS "Constructors" .IX Subsection "Constructors" Extends \*(L"Constructors\*(R" in Mail::Message::Head::FieldGroup. .ie n .IP "$obj\->\fBaddress\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBaddress\fR()" 4 .IX Item "$obj->address()" Returns a Mail::Message::Field::Address object (or \f(CW\*(C`undef\*(C'\fR) which defines the posting address of the mailing list. .ie n .IP "$obj\->\fBclone\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBclone\fR()" 4 .IX Item "$obj->clone()" Inherited, see \*(L"Constructors\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBfrom\fR($head|$message)" 4 .el .IP "\f(CW$obj\fR\->\fBfrom\fR($head|$message)" 4 .IX Item "$obj->from($head|$message)" Create a \f(CW\*(C`Mail::Message::Head::ListGroup\*(C'\fR based in the specified \f(CW$message\fR or message \f(CW$head\fR. .ie n .IP "$obj\->\fBimplementedTypes\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBimplementedTypes\fR()" 4 .IX Item "$obj->implementedTypes()" .PD 0 .IP "Mail::Message::Head::ListGroup\->\fBimplementedTypes\fR()" 4 .IX Item "Mail::Message::Head::ListGroup->implementedTypes()" .PD Inherited, see \*(L"Constructors\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBlistname\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBlistname\fR()" 4 .IX Item "$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. .ie n .IP "Mail::Message::Head::ListGroup\->\fBnew\fR($fields, %options)" 4 .el .IP "Mail::Message::Head::ListGroup\->\fBnew\fR($fields, \f(CW%options\fR)" 4 .IX Item "Mail::Message::Head::ListGroup->new($fields, %options)" Construct an object which maintains one set of mailing list headers .Sp .Vb 10 \& \-Option \-\-Defined in \-\-Default \& address undef \& head Mail::Message::Head::FieldGroup undef \& listname \& log Mail::Reporter \*(AqWARNINGS\*(Aq \& rfc undef \& software Mail::Message::Head::FieldGroup undef \& trace Mail::Reporter \*(AqWARNINGS\*(Aq \& type Mail::Message::Head::FieldGroup undef \& version Mail::Message::Head::FieldGroup undef .Ve .RS 4 .IP "address => STRING|OBJECT" 2 .IX Item "address => STRING|OBJECT" Address of the mailing list, which may be specified as \s-1STRING\s0 or e\-mail containing object (a Mail::Address or Mail::Identity. In any case, the data is converted into a Mail::Identity. .IP "head => \s-1HEAD\s0" 2 .IX Item "head => HEAD" .PD 0 .IP "listname => \s-1STRING\s0" 2 .IX Item "listname => STRING" .PD A short textual representation of the mailing-list. .IP "log => \s-1LEVEL\s0" 2 .IX Item "log => LEVEL" .PD 0 .IP "rfc => 'rfc2919'|'rfc2369'" 2 .IX Item "rfc => 'rfc2919'|'rfc2369'" .PD Defines the mailing list software follows an rfc. .IP "software => \s-1STRING\s0" 2 .IX Item "software => STRING" .PD 0 .IP "trace => \s-1LEVEL\s0" 2 .IX Item "trace => LEVEL" .IP "type => \s-1STRING\s0" 2 .IX Item "type => STRING" .IP "version => \s-1STRING\s0" 2 .IX Item "version => STRING" .RE .RS 4 .RE .ie n .IP "$obj\->\fBrfc\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBrfc\fR()" 4 .IX Item "$obj->rfc()" .PD When the mailing list software follows the guidelines of one of the dedicated RFCs, then this will be returned otherwise \f(CW\*(C`undef\*(C'\fR. The return values can be \f(CW\*(C`rfc2919\*(C'\fR, \f(CW\*(C`rfc2369\*(C'\fR, or \f(CW\*(C`undef\*(C'\fR. .SS "The header" .IX Subsection "The header" Extends \*(L"The header\*(R" in Mail::Message::Head::FieldGroup. .ie n .IP "$obj\->\fBadd\fR( <$field, $value> | $object )" 4 .el .IP "\f(CW$obj\fR\->\fBadd\fR( <$field, \f(CW$value\fR> | \f(CW$object\fR )" 4 .IX Item "$obj->add( <$field, $value> | $object )" Inherited, see \*(L"The header\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBaddFields\fR( [$fieldnames] )" 4 .el .IP "\f(CW$obj\fR\->\fBaddFields\fR( [$fieldnames] )" 4 .IX Item "$obj->addFields( [$fieldnames] )" Inherited, see \*(L"The header\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBattach\fR($head)" 4 .el .IP "\f(CW$obj\fR\->\fBattach\fR($head)" 4 .IX Item "$obj->attach($head)" Inherited, see \*(L"The header\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBdelete\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBdelete\fR()" 4 .IX Item "$obj->delete()" Inherited, see \*(L"The header\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBfieldNames\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBfieldNames\fR()" 4 .IX Item "$obj->fieldNames()" Inherited, see \*(L"The header\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBfields\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBfields\fR()" 4 .IX Item "$obj->fields()" Inherited, see \*(L"The header\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBhead\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBhead\fR()" 4 .IX Item "$obj->head()" Inherited, see \*(L"The header\*(R" in Mail::Message::Head::FieldGroup .SS "Access to the header" .IX Subsection "Access to the header" Extends \*(L"Access to the header\*(R" in Mail::Message::Head::FieldGroup. .ie n .IP "$obj\->\fBisListGroupFieldName\fR($name)" 4 .el .IP "\f(CW$obj\fR\->\fBisListGroupFieldName\fR($name)" 4 .IX Item "$obj->isListGroupFieldName($name)" .PD 0 .IP "Mail::Message::Head::ListGroup\->\fBisListGroupFieldName\fR($name)" 4 .IX Item "Mail::Message::Head::ListGroup->isListGroupFieldName($name)" .ie n .IP "$obj\->\fBsoftware\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBsoftware\fR()" 4 .IX Item "$obj->software()" .PD Inherited, see \*(L"Access to the header\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBtype\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBtype\fR()" 4 .IX Item "$obj->type()" Inherited, see \*(L"Access to the header\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBversion\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBversion\fR()" 4 .IX Item "$obj->version()" Inherited, see \*(L"Access to the header\*(R" in Mail::Message::Head::FieldGroup .SS "Internals" .IX Subsection "Internals" Extends \*(L"Internals\*(R" in Mail::Message::Head::FieldGroup. .ie n .IP "$obj\->\fBcollectFields\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBcollectFields\fR()" 4 .IX Item "$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 \fIfrom()\fR an existing header or message. .Sp 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. .Sp Please warn the author of MailBox if you see that to few or too many fields are included. .ie n .IP "$obj\->\fBdetected\fR($type, $software, $version)" 4 .el .IP "\f(CW$obj\fR\->\fBdetected\fR($type, \f(CW$software\fR, \f(CW$version\fR)" 4 .IX Item "$obj->detected($type, $software, $version)" Inherited, see \*(L"Internals\*(R" in Mail::Message::Head::FieldGroup .SS "Error handling" .IX Subsection "Error handling" Extends \*(L"Error handling\*(R" in Mail::Message::Head::FieldGroup. .ie n .IP "$obj\->\fB\s-1AUTOLOAD\s0\fR()" 4 .el .IP "\f(CW$obj\fR\->\fB\s-1AUTOLOAD\s0\fR()" 4 .IX Item "$obj->AUTOLOAD()" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBaddReport\fR($object)" 4 .el .IP "\f(CW$obj\fR\->\fBaddReport\fR($object)" 4 .IX Item "$obj->addReport($object)" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBdefaultTrace\fR( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )" 4 .el .IP "\f(CW$obj\fR\->\fBdefaultTrace\fR( [$level]|[$loglevel, \f(CW$tracelevel\fR]|[$level, \f(CW$callback\fR] )" 4 .IX Item "$obj->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )" .PD 0 .ie n .IP "Mail::Message::Head::ListGroup\->\fBdefaultTrace\fR( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )" 4 .el .IP "Mail::Message::Head::ListGroup\->\fBdefaultTrace\fR( [$level]|[$loglevel, \f(CW$tracelevel\fR]|[$level, \f(CW$callback\fR] )" 4 .IX Item "Mail::Message::Head::ListGroup->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )" .PD Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBdetails\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBdetails\fR()" 4 .IX Item "$obj->details()" Produce information about the detected/create list group, which may be helpful during debugging, by default to the selected file handle. .ie n .IP "$obj\->\fBerrors\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBerrors\fR()" 4 .IX Item "$obj->errors()" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBlog\fR( [$level, [$strings]] )" 4 .el .IP "\f(CW$obj\fR\->\fBlog\fR( [$level, [$strings]] )" 4 .IX Item "$obj->log( [$level, [$strings]] )" .PD 0 .IP "Mail::Message::Head::ListGroup\->\fBlog\fR( [$level, [$strings]] )" 4 .IX Item "Mail::Message::Head::ListGroup->log( [$level, [$strings]] )" .PD Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBlogPriority\fR($level)" 4 .el .IP "\f(CW$obj\fR\->\fBlogPriority\fR($level)" 4 .IX Item "$obj->logPriority($level)" .PD 0 .IP "Mail::Message::Head::ListGroup\->\fBlogPriority\fR($level)" 4 .IX Item "Mail::Message::Head::ListGroup->logPriority($level)" .PD Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBlogSettings\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBlogSettings\fR()" 4 .IX Item "$obj->logSettings()" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBnotImplemented\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBnotImplemented\fR()" 4 .IX Item "$obj->notImplemented()" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBprint\fR( [$fh] )" 4 .el .IP "\f(CW$obj\fR\->\fBprint\fR( [$fh] )" 4 .IX Item "$obj->print( [$fh] )" Inherited, see \*(L"Error handling\*(R" in Mail::Message::Head::FieldGroup .ie n .IP "$obj\->\fBreport\fR( [$level] )" 4 .el .IP "\f(CW$obj\fR\->\fBreport\fR( [$level] )" 4 .IX Item "$obj->report( [$level] )" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBreportAll\fR( [$level] )" 4 .el .IP "\f(CW$obj\fR\->\fBreportAll\fR( [$level] )" 4 .IX Item "$obj->reportAll( [$level] )" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBtrace\fR( [$level] )" 4 .el .IP "\f(CW$obj\fR\->\fBtrace\fR( [$level] )" 4 .IX Item "$obj->trace( [$level] )" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .ie n .IP "$obj\->\fBwarnings\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBwarnings\fR()" 4 .IX Item "$obj->warnings()" Inherited, see \*(L"Error handling\*(R" in Mail::Reporter .SS "Cleanup" .IX Subsection "Cleanup" Extends \*(L"Cleanup\*(R" in Mail::Message::Head::FieldGroup. .ie n .IP "$obj\->\fB\s-1DESTROY\s0\fR()" 4 .el .IP "\f(CW$obj\fR\->\fB\s-1DESTROY\s0\fR()" 4 .IX Item "$obj->DESTROY()" Inherited, see \*(L"Cleanup\*(R" in Mail::Reporter .SH "DETAILS" .IX Header "DETAILS" .SS "Mailing list fields" .IX Subsection "Mailing list fields" \fIDetected lists\fR .IX Subsection "Detected lists" .PP The Mail::Message::Head::ListGroup class can detect many different mailing lists, some of which are very popular and some of which are rare. .PP 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: \f(CW\*(C`rfc2919\*(C'\fR and \f(CW\*(C`rfc2369\*(C'\fR. .PP The following lists are currently detected. Between parenthesis is the string returned by \fItype()\fR when that differs from the software name. .IP "\(bu" 4 CommuniGate .Sp Legacy commercial MacOS implementation by Stalker Software Inc. .IP "\(bu" 4 CommuniGate Pro (CommuniGatePro) .Sp Commercial rfc2919 compliant implementation by Stalker Software Inc. .IP "\(bu" 4 Ecartis .Sp Commercial mailing list manager, formerly known as Listar. Produced by NodeRunner Computing. See . .IP "\(bu" 4 Ezmlm .Sp Open Source mailing list manager, available from . .IP "\(bu" 4 \&\s-1FML\s0 .Sp Open Source mailing list manager, see . .IP "\(bu" 4 Listar .Sp Old name for Ecartis. .IP "\(bu" 4 Listbox .Sp Mailing lists defined at . .IP "\(bu" 4 Mailman .Sp \&\s-1GNU\s0's mailing list manager, available from . .IP "\(bu" 4 Majordomo .Sp Free (licenced) mailing list manager by Great Circle Associates, available from .IP "\(bu" 4 Smartlist .Sp Related to procmail, as expressed by their shared main page at . .IP "\(bu" 4 Yahoo! Groups (YahooGroups) .Sp Mailing lists defined at . .IP "\(bu" 4 Listserv .Sp Commercial mailing list manager, produced by L\-Soft. See . .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" .ie n .IP "Error: Cannot convert ""$string"" into an address object" 4 .el .IP "Error: Cannot convert ``$string'' into an address object" 4 .IX Item "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 \fIMail::Message::Field::Address::coerce()\fR to see what valid arguments are. .ie n .IP "Error: Package $package does not implement $method." 4 .el .IP "Error: Package \f(CW$package\fR does not implement \f(CW$method\fR." 4 .IX Item "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. .SH "SEE ALSO" .IX Header "SEE ALSO" This module is part of Mail-Box distribution version 2.120, built on September 21, 2016. Website: \fIhttp://perl.overmeer.net/mailbox/\fR .SH "LICENSE" .IX Header "LICENSE" Copyrights 2001\-2016 by [Mark Overmeer]. For other contributors see ChangeLog. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See \fIhttp://www.perl.com/perl/misc/Artistic.html\fR