Provided by: libcourriel-perl_0.49-1_all bug

NAME

       Courriel::Header::ContentType - The content type for an email part

VERSION

       version 0.49

SYNOPSIS

           my $ct = $part->content_type();
           print $ct->mime_type();
           print $ct->charset();

           my %attr = $ct->attributes();
           while ( my ( $k, $v ) = each %attr ) {
               print "$k => $v\n";
           }

DESCRIPTION

       This class represents the contents of a "Content-Type" header attached to an email part.
       Such headers always include a mime type, and may also include additional information such
       as a charset or other attributes.

       Here are some typical headers:

         Content-Type: text/plain; charset=utf-8

         Content-Type: multipart/alternative; boundary=abcdefghijk

         Content-Type: image/jpeg; name="Filename.jpg"

API

       This class supports the following methods:

   Courriel::Header::ContentType->new_from_value( ... )
       This takes two parameters, "name" and "value". The "name" is optional, and defaults to
       "Content-Type".

       The "value" is parsed and split up into the mime type and attributes.

   Courriel::Header::ContentType->new( ... )
       This method creates a new object. It accepts the following parameters:

       •   name

           This defaults to 'Content-Type'.

       •   value

           This is the full header value.

       •   mime_type

           A string like "text/plain" or "multipart/alternative". This is required.

       •   attributes

           A hash reference of attributes from the header, such as a boundary, charset, etc. The
           keys are attribute names and the values can either be strings or
           Courriel::HeaderAttribute objects. Values which are strings will be inflated into
           objects by the constructor.

           This is optional, and can be an empty hash reference or omitted entirely.

   $ct->name()
       The header name, usually "Content-Type".

   $ct->value()
       The raw header value.

   $ct->mime_type()
       Returns the mime type value passed to the constructor. However, this value will be in all
       lower-case, regardless of the original casing passed to the constructor.

   $ct->charset()
       Returns the charset for the content type, which will be the value found in the
       "attributes", if one exists.

   $ct->attributes()
       Returns a hash (not a reference) of the attributes passed to the constructor.

       Attributes are Courriel::HeaderAttribute objects.

       The keys of the hash are all lower case, though the original casing is preserved in the
       "name()" returned by the Courriel::HeaderAttribute object.

   $ct->is_binary()
       Returns true unless the attachment looks like text data. Currently, this means that is has
       a charset defined and the charset is not "binary".

   $ct->attribute($key)
       Given a key, returns the named Courriel::HeaderAttribute object. Obviously, this value can
       be "undef" if the attribute doesn't exist. Name lookup is case-insensitive.

   $ct->attribute_value($key)
       Given a key, returns the named attribute's value as a string. Obviously, this value can be
       "undef" if the attribute doesn't exist. Name lookup is case-insensitive.

       The attribute is a Courriel::HeaderAttribute object.

   $ct->as_header_value()
       Returns the object as a string suitable for a header value (but not folded).  Note that
       this uses the original casing of the mime type as passed to the constructor.

EXTENDS

       This class extends Courriel::Header.

ROLES

       This class does the "Courriel::Role::HeaderWithAttributes" role.

SUPPORT

       Bugs may be submitted at <https://github.com/houseabsolute/Courriel/issues>.

       I am also usually active on IRC as 'autarch' on "irc://irc.perl.org".

SOURCE

       The source code repository for Courriel can be found at
       <https://github.com/houseabsolute/Courriel>.

AUTHOR

       Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

       This software is Copyright (c) 2021 by Dave Rolsky.

       This is free software, licensed under:

         The Artistic License 2.0 (GPL Compatible)

       The full text of the license can be found in the LICENSE file included with this
       distribution.