Courriel::Part::Single(3) A part which does not contain other parts, only content

VERSION

version 0.41

SYNOPSIS


my $headers = $part->headers;
my $ct = $part->content_type;
my $content = $part->content;
print ${$content};

DESCRIPTION

This class represents a single part that does not contain other parts, just content.

API

This class provides the following methods:

Courriel::Part::Single->new( ... )

This method creates a new part object. It accepts the following parameters:
  • content

    This can either be a string or a reference to a scalar. It should be a character string, not a byte string.

    If you pass a reference, then the scalar underlying the reference may be modified, so don't pass in something you don't want modified.

  • encoded_content

    This can either be a string or a reference to a scalar.

    If you pass a reference, then the scalar underlying the reference may be modified, so don't pass in something you don't want modified.

  • content_type

    A Courriel::Header::ContentType object. This will default to one with the mime type ``text/plain''.

  • disposition

    A Courriel::Header::Disposition object representing this part's content disposition. This will default to ``inline'' with no other attributes.

  • encoding

    The Content-Transfer-Encoding for this part. This defaults to the value found in the part's headers, or ``8bit'' if no header is found.

  • headers

    A Courriel::Headers object containing headers for this part.

You must pass a "content" or "encoded_content" value when creating a new part, but there's really no point in passing both.

It is strongly recommended that you pass a "content" parameter and letting this module do the encoding for you internally.

$part->content()

This returns returns the decoded content for the part. It will be in Perl's native utf-8 encoding, decoded from whatever character set the content is in.

$part->encoded_content()

This returns returns the encoded content for the part.

$part->mime_type()

Returns the mime type for this part.

$part->has_charset()

Return true if the part has a charset defined. Binary attachments will usually not have this defined.

$part->charset()

Returns the charset for this part.

$part->is_inline(), $part->is_attachment()

These methods return boolean values based on the part's content disposition.

$part->filename()

Returns the filename from the part's content disposition, if any.

$part->content_type()

Returns the Courriel::Header::ContentType object for this part.

$part->disposition()

Returns the Courriel::Header::Disposition object for this part.

$part->encoding()

Returns the encoding for the part.

$part->headers()

Returns the Courriel::Headers object for this part.

$part->is_multipart()

Returns false.

$part->container()

Returns the Courriel or Courriel::Part::Multipart object to which this part belongs, if any. This is set when the part is added to another object.

$part->content_ref()

This returns returns a reference to a scalar containing the decoded content for the part.

$part->encoded_content_ref()

This returns returns a reference to a scalar containing the encoded content for the part, without any decoding.

$part->as_string()

Returns the part as a string, along with its headers. Lines will be terminated with ``\r\n''.

$part->stream_to( output => $output )

This method will send the stringified part to the specified output. The output can be a subroutine reference, a filehandle, or an object with a "print()" method. The output may be sent as a single string, as a list of strings, or via multiple calls to the output.

ROLES

This class does the "Courriel::Role::Part" and "Courriel::Role::Streams" roles.

AUTHOR

Dave Rolsky <[email protected]>

COPYRIGHT AND LICENSE

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

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)