{
    "content": [
        {
            "type": "text",
            "text": "# Mail::Message::Field::Addresses (perldoc)\n\n## NAME\n\nMail::Message::Field::Addresses - Fields with e-mail addresses\n\n## SYNOPSIS\n\nmy $cc = Mail::Message::Field::Full->new('Cc');\nmy $me = Mail::Message::Field::Address->parse('\"Test\" <test@mail.box>')\nor die;\nmy $other = Mail::Message::Field::Address->new(phrase => 'Other'\n, address => 'other@example.com')\nor die;\n$cc->addAddress($me);\n$cc->addAddress($other, group => 'them');\n$cc->addAddress(phrase => 'third', address => 'more@any.museum'\n, group => 'them');\nmy $group = $cc->addGroup(name => 'collegues');\n$group->addAddress($me);\n$group->addAddress(phrase => \"You\", address => 'you@example.com');\nmy $msg = Mail::Message->build(Cc => $cc);\nprint $msg->string;\nmy $g  = Mail::Message::Field::AddrGroup->new(...);\n$cc->addGroup($g);\n\n## DESCRIPTION\n\nAll header fields which contain e-mail addresses only. Not all address fields have the same\npossibilities, but they are all parsed the same: you never know how broken the applications are\nwhich produce those messages.\n\n## Sections\n\n- **NAME**\n- **INHERITANCE**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **OVERLOADED**\n- **METHODS** (10 subsections)\n- **DETAILS**\n- **DIAGNOSTICS**\n- **SEE ALSO**\n- **LICENSE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Mail::Message::Field::Addresses",
        "section": "",
        "mode": "perldoc",
        "summary": "Mail::Message::Field::Addresses - Fields with e-mail addresses",
        "synopsis": "my $cc = Mail::Message::Field::Full->new('Cc');\nmy $me = Mail::Message::Field::Address->parse('\"Test\" <test@mail.box>')\nor die;\nmy $other = Mail::Message::Field::Address->new(phrase => 'Other'\n, address => 'other@example.com')\nor die;\n$cc->addAddress($me);\n$cc->addAddress($other, group => 'them');\n$cc->addAddress(phrase => 'third', address => 'more@any.museum'\n, group => 'them');\nmy $group = $cc->addGroup(name => 'collegues');\n$group->addAddress($me);\n$group->addAddress(phrase => \"You\", address => 'you@example.com');\nmy $msg = Mail::Message->build(Cc => $cc);\nprint $msg->string;\nmy $g  = Mail::Message::Field::AddrGroup->new(...);\n$cc->addGroup($g);",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "INHERITANCE",
                "lines": 6,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 23,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 9,
                "subsections": []
            },
            {
                "name": "OVERLOADED",
                "lines": 20,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "Constructors",
                        "lines": 28
                    },
                    {
                        "name": "The field",
                        "lines": 24
                    },
                    {
                        "name": "Access to the name",
                        "lines": 11
                    },
                    {
                        "name": "Access to the body",
                        "lines": 21
                    },
                    {
                        "name": "Access to the content",
                        "lines": 78
                    },
                    {
                        "name": "Other methods",
                        "lines": 6
                    },
                    {
                        "name": "Internals",
                        "lines": 28
                    },
                    {
                        "name": "Parsing",
                        "lines": 30
                    },
                    {
                        "name": "Error handling",
                        "lines": 42
                    },
                    {
                        "name": "Cleanup",
                        "lines": 5
                    }
                ]
            },
            {
                "name": "DETAILS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DIAGNOSTICS",
                "lines": 32,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Mail::Message::Field::Addresses - Fields with e-mail addresses\n",
                "subsections": []
            },
            "INHERITANCE": {
                "content": "Mail::Message::Field::Addresses\nis a Mail::Message::Field::Structured\nis a Mail::Message::Field::Full\nis a Mail::Message::Field\nis a Mail::Reporter\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "my $cc = Mail::Message::Field::Full->new('Cc');\nmy $me = Mail::Message::Field::Address->parse('\"Test\" <test@mail.box>')\nor die;\n\nmy $other = Mail::Message::Field::Address->new(phrase => 'Other'\n, address => 'other@example.com')\nor die;\n\n$cc->addAddress($me);\n$cc->addAddress($other, group => 'them');\n$cc->addAddress(phrase => 'third', address => 'more@any.museum'\n, group => 'them');\n\nmy $group = $cc->addGroup(name => 'collegues');\n$group->addAddress($me);\n$group->addAddress(phrase => \"You\", address => 'you@example.com');\n\nmy $msg = Mail::Message->build(Cc => $cc);\nprint $msg->string;\n\nmy $g  = Mail::Message::Field::AddrGroup->new(...);\n$cc->addGroup($g);\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "All header fields which contain e-mail addresses only. Not all address fields have the same\npossibilities, but they are all parsed the same: you never know how broken the applications are\nwhich produce those messages.\n\nWhen you try to create constructs which are not allowed for a certain kind of field, you will be\nwarned.\n\nExtends \"DESCRIPTION\" in Mail::Message::Field::Structured.\n",
                "subsections": []
            },
            "OVERLOADED": {
                "content": "Extends \"OVERLOADED\" in Mail::Message::Field::Structured.\n\noverload: \"\"\nInherited, see \"OVERLOADED\" in Mail::Message::Field\n\noverload: 0+\nInherited, see \"OVERLOADED\" in Mail::Message::Field\n\noverload: <=>\nInherited, see \"OVERLOADED\" in Mail::Message::Field\n\noverload: bool\nInherited, see \"OVERLOADED\" in Mail::Message::Field\n\noverload: cmp\nInherited, see \"OVERLOADED\" in Mail::Message::Field\n\noverload: stringification\nInherited, see \"OVERLOADED\" in Mail::Message::Field::Full\n",
                "subsections": []
            },
            "METHODS": {
                "content": "Extends \"METHODS\" in Mail::Message::Field::Structured.\n",
                "subsections": [
                    {
                        "name": "Constructors",
                        "content": "Extends \"Constructors\" in Mail::Message::Field::Structured.\n\n$obj->clone()\nInherited, see \"Constructors\" in Mail::Message::Field\n\nMail::Message::Field::Addresses->from($field, %options)\nInherited, see \"Constructors\" in Mail::Message::Field::Full\n\nMail::Message::Field::Addresses->new()\n-Option    --Defined in                      --Default\nattributes  Mail::Message::Field::Structured  <ignored>\ncharset     Mail::Message::Field::Full        undef\ndatum       Mail::Message::Field::Structured  undef\nencoding    Mail::Message::Field::Full        'q'\nforce       Mail::Message::Field::Full        false\nlanguage    Mail::Message::Field::Full        undef\nlog         Mail::Reporter                    'WARNINGS'\ntrace       Mail::Reporter                    'WARNINGS'\n\nattributes => ATTRS\ncharset => STRING\ndatum => STRING\nencoding => 'q'|'Q'|'b'|'B'\nforce => BOOLEAN\nlanguage => STRING\nlog => LEVEL\ntrace => LEVEL\n"
                    },
                    {
                        "name": "The field",
                        "content": "Extends \"The field\" in Mail::Message::Field::Structured.\n\n$obj->isStructured()\nMail::Message::Field::Addresses->isStructured()\nInherited, see \"The field\" in Mail::Message::Field\n\n$obj->length()\nInherited, see \"The field\" in Mail::Message::Field\n\n$obj->nrLines()\nInherited, see \"The field\" in Mail::Message::Field\n\n$obj->print( [$fh] )\nInherited, see \"The field\" in Mail::Message::Field\n\n$obj->size()\nInherited, see \"The field\" in Mail::Message::Field\n\n$obj->string( [$wrap] )\nInherited, see \"The field\" in Mail::Message::Field\n\n$obj->toDisclose()\nInherited, see \"The field\" in Mail::Message::Field\n"
                    },
                    {
                        "name": "Access to the name",
                        "content": "Extends \"Access to the name\" in Mail::Message::Field::Structured.\n\n$obj->Name()\nInherited, see \"Access to the name\" in Mail::Message::Field\n\n$obj->name()\nInherited, see \"Access to the name\" in Mail::Message::Field\n\n$obj->wellformedName( [STRING] )\nInherited, see \"Access to the name\" in Mail::Message::Field\n"
                    },
                    {
                        "name": "Access to the body",
                        "content": "Extends \"Access to the body\" in Mail::Message::Field::Structured.\n\n$obj->body()\nInherited, see \"Access to the body\" in Mail::Message::Field\n\n$obj->decodedBody(%options)\nInherited, see \"Access to the body\" in Mail::Message::Field::Full\n\n$obj->folded()\nInherited, see \"Access to the body\" in Mail::Message::Field\n\n$obj->foldedBody( [$body] )\nInherited, see \"Access to the body\" in Mail::Message::Field\n\n$obj->stripCFWS( [STRING] )\nMail::Message::Field::Addresses->stripCFWS( [STRING] )\nInherited, see \"Access to the body\" in Mail::Message::Field\n\n$obj->unfoldedBody( [$body, [$wrap]] )\nInherited, see \"Access to the body\" in Mail::Message::Field\n"
                    },
                    {
                        "name": "Access to the content",
                        "content": "Extends \"Access to the content\" in Mail::Message::Field::Structured.\n\n$obj->addAddress( [$address], %options )\nAdd an $address to the field. The addresses are organized in groups. If no group is\nspecified, the default group is taken to store the address in. If no $address is specified,\nthe option must be sufficient to create a Mail::Message::Field::Address from. See the\n%options of Mail::Message::Field::Address::new().\n\n-Option--Default\ngroup   ''\n\ngroup => STRING\n\n$obj->addAttribute(...)\nAttributes are not supported for address fields.\n\n$obj->addGroup($group|%options)\nAdd a group of addresses to this field. A $group can be specified, which is a\nMail::Message::Field::AddrGroup object, or one is created for you using the %options. The\ngroup is returned.\n\n-Option--Default\nname    ''\n\nname => STRING\n\n$obj->addresses()\nReturns a list with all addresses defined in any group of addresses: all addresses which are\nspecified on the line. The addresses are Mail::Message::Field::Address objects.\n\nexample:\n\nmy @addr = $field->addresses;\n\n$obj->attrPairs()\nInherited, see \"Access to the content\" in Mail::Message::Field::Structured\n\n$obj->attribute( $object|<STRING, %options>|<$name,$value,%options> )\nInherited, see \"Access to the content\" in Mail::Message::Field::Structured\n\n$obj->attributes()\nInherited, see \"Access to the content\" in Mail::Message::Field::Structured\n\n$obj->beautify()\nInherited, see \"Access to the content\" in Mail::Message::Field::Full\n\n$obj->comment( [STRING] )\nInherited, see \"Access to the content\" in Mail::Message::Field\n\n$obj->createComment(STRING, %options)\nMail::Message::Field::Addresses->createComment(STRING, %options)\nInherited, see \"Access to the content\" in Mail::Message::Field::Full\n\n$obj->createPhrase(STRING, %options)\nMail::Message::Field::Addresses->createPhrase(STRING, %options)\nInherited, see \"Access to the content\" in Mail::Message::Field::Full\n\n$obj->group($name)\nReturns the group of addresses with the specified $name, or \"undef\" if it does not exist. If\n$name is \"undef\", then the default groep is returned.\n\n$obj->groupNames()\nReturns a list with all group names which are defined.\n\n$obj->groups()\nReturns all address groups which are defined in this field. Each element is a\nMail::Message::Field::AddrGroup object.\n\n$obj->study()\nInherited, see \"Access to the content\" in Mail::Message::Field\n\n$obj->toDate( [$time] )\nMail::Message::Field::Addresses->toDate( [$time] )\nInherited, see \"Access to the content\" in Mail::Message::Field\n\n$obj->toInt()\nInherited, see \"Access to the content\" in Mail::Message::Field\n"
                    },
                    {
                        "name": "Other methods",
                        "content": "Extends \"Other methods\" in Mail::Message::Field::Structured.\n\n$obj->dateToTimestamp(STRING)\nMail::Message::Field::Addresses->dateToTimestamp(STRING)\nInherited, see \"Other methods\" in Mail::Message::Field\n"
                    },
                    {
                        "name": "Internals",
                        "content": "Extends \"Internals\" in Mail::Message::Field::Structured.\n\n$obj->consume( $line | <$name,<$body|$objects>> )\nInherited, see \"Internals\" in Mail::Message::Field\n\n$obj->decode(STRING, %options)\nMail::Message::Field::Addresses->decode(STRING, %options)\nInherited, see \"Internals\" in Mail::Message::Field::Full\n\n$obj->defaultWrapLength( [$length] )\nInherited, see \"Internals\" in Mail::Message::Field\n\n$obj->encode(STRING, %options)\nInherited, see \"Internals\" in Mail::Message::Field::Full\n\n$obj->fold( $name, $body, [$maxchars] )\nMail::Message::Field::Addresses->fold( $name, $body, [$maxchars] )\nInherited, see \"Internals\" in Mail::Message::Field\n\n$obj->setWrapLength( [$length] )\nInherited, see \"Internals\" in Mail::Message::Field\n\n$obj->stringifyData(STRING|ARRAY|$objects)\nInherited, see \"Internals\" in Mail::Message::Field\n\n$obj->unfold(STRING)\nInherited, see \"Internals\" in Mail::Message::Field\n"
                    },
                    {
                        "name": "Parsing",
                        "content": "Extends \"Parsing\" in Mail::Message::Field::Structured.\n\n$obj->consumeAddress(STRING, %options)\nTry to destilate address information from the STRING. Returned are an address object and the\nleft-over string. If no address was found, the first returned value is \"undef\".\n\n$obj->consumeComment(STRING)\nMail::Message::Field::Addresses->consumeComment(STRING)\nInherited, see \"Parsing\" in Mail::Message::Field::Full\n\n$obj->consumeDomain(STRING)\nTry to get a valid domain representation from STRING. Returned are the domain string as\nfound (or \"undef\") and the rest of the string.\n\n$obj->consumeDotAtom(STRING)\nInherited, see \"Parsing\" in Mail::Message::Field::Full\n\n$obj->consumePhrase(STRING)\nMail::Message::Field::Addresses->consumePhrase(STRING)\nInherited, see \"Parsing\" in Mail::Message::Field::Full\n\n$obj->datum( [$value] )\nInherited, see \"Parsing\" in Mail::Message::Field::Structured\n\n$obj->parse(STRING)\nInherited, see \"Parsing\" in Mail::Message::Field::Full\n\n$obj->produceBody()\nInherited, see \"Parsing\" in Mail::Message::Field::Full\n"
                    },
                    {
                        "name": "Error handling",
                        "content": "Extends \"Error handling\" in Mail::Message::Field::Structured.\n\n$obj->AUTOLOAD()\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->addReport($object)\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )\nMail::Message::Field::Addresses->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level,\n$callback] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->errors()\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->log( [$level, [$strings]] )\nMail::Message::Field::Addresses->log( [$level, [$strings]] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->logPriority($level)\nMail::Message::Field::Addresses->logPriority($level)\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->logSettings()\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->notImplemented()\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->report( [$level] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->reportAll( [$level] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->trace( [$level] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->warnings()\nInherited, see \"Error handling\" in Mail::Reporter\n"
                    },
                    {
                        "name": "Cleanup",
                        "content": "Extends \"Cleanup\" in Mail::Message::Field::Structured.\n\n$obj->DESTROY()\nInherited, see \"Cleanup\" in Mail::Reporter\n"
                    }
                ]
            },
            "DETAILS": {
                "content": "Extends \"DETAILS\" in Mail::Message::Field::Structured.\n",
                "subsections": []
            },
            "DIAGNOSTICS": {
                "content": "Warning: Field content is not numerical: $content\nThe numeric value of a field is requested (for instance the \"Lines\" or \"Content-Length\"\nfields should be numerical), however the data contains weird characters.\n\nWarning: Illegal character in charset '$charset'\nThe field is created with an utf8 string which only contains data from the specified\ncharacter set. However, that character set can never be a valid name because it contains\ncharacters which are not permitted.\n\nWarning: Illegal character in field name $name\nA new field is being created which does contain characters not permitted by the RFCs. Using\nthis field in messages may break other e-mail clients or transfer agents, and therefore\nmutulate or extinguish your message.\n\nWarning: Illegal character in language '$lang'\nThe field is created with data which is specified to be in a certain language, however, the\nname of the language cannot be valid: it contains characters which are not permitted by the\nRFCs.\n\nWarning: Illegal encoding '$encoding', used 'q'\nThe RFCs only permit base64 (\"b \" or \"B \") or quoted-printable (\"q\" or \"Q\") encoding. Other\nthan these four options are illegal.\n\nError: No attributes for address fields.\nIs is not possible to add attributes to address fields: it is not permitted by the RFCs.\n\nError: Package $package does not implement $method.\nFatal error: the specific package (or one of its superclasses) does not implement this\nmethod where it should. This message means that some other related classes do implement this\nmethod however the class at hand does not. Probably you should investigate this and probably\ninform the author of the package.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "This module is part of Mail-Message distribution version 3.012, built on February 11, 2022.\nWebsite: http://perl.overmeer.net/CPAN/\n",
                "subsections": []
            },
            "LICENSE": {
                "content": "Copyrights 2001-2022 by [Mark Overmeer <markov@cpan.org>]. For other contributors see ChangeLog.\n\nThis program is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself. See http://dev.perl.org/licenses/\n",
                "subsections": []
            }
        }
    }
}