=encoding utf8

=head1 NAME

Mail::Message::Convert - conversions between message types

=head1 INHERITANCE

 Mail::Message::Convert
   is a Mail::Reporter

 Mail::Message::Convert is extended by
   Mail::Message::Convert::EmailSimple
   Mail::Message::Convert::Html
   Mail::Message::Convert::HtmlFormatPS
   Mail::Message::Convert::HtmlFormatText
   Mail::Message::Convert::MailInternet
   Mail::Message::Convert::MimeEntity
   Mail::Message::Convert::TextAutoformat

=head1 SYNOPSIS

Available methods are very converter-specific.

=head1 DESCRIPTION

This class is the base for various message (and message parts) converters.

Extends L<"DESCRIPTION" in Mail::Reporter|Mail::Reporter/"DESCRIPTION">.

=head2 Converters between message objects

Internally, the L<Mail::Message::coerce()|Mail::Message/"Internals"> is called when foreign objects
are used where message objects are expected.  That method will automatically
create the converting objects, and re-use them.

=over 4

=item * L<Mail::Message::Convert::MailInternet|Mail::Message::Convert::MailInternet>

Converts the simple L<Mail::Internet|Mail::Internet> messages into L<Mail::Message|Mail::Message>
objects.

=item * L<Mail::Message::Convert::MimeEntity|Mail::Message::Convert::MimeEntity>

Converts the more complicated MIME::Entity messages into
L<Mail::Message|Mail::Message> objects.

=item * L<Mail::Message::Convert::EmailSimple|Mail::Message::Convert::EmailSimple>

Converts Email::Simple messages into L<Mail::Message|Mail::Message> objects.

=back

=head2 Other converters

=over 4

=item * L<Mail::Message::Convert::Html|Mail::Message::Convert::Html>

Plays tricks with HTML/XMHTML without help of external modules.

=item * L<Mail::Message::Convert::HtmlFormatText|Mail::Message::Convert::HtmlFormatText>

Converts HTML body objects to plain text objects using the
HTML::FormatText module.

=item * L<Mail::Message::Convert::HtmlFormatPS|Mail::Message::Convert::HtmlFormatPS>

Converts HTML body objects to Postscript objects using the
HTML::FormatPS module.

=item * L<Mail::Message::Convert::TextAutoformat|Mail::Message::Convert::TextAutoformat>

Converts a text message into text using Text::Autoformat.

=back

=head1 METHODS

Extends L<"METHODS" in Mail::Reporter|Mail::Reporter/"METHODS">.

=head2 Constructors

Extends L<"Constructors" in Mail::Reporter|Mail::Reporter/"Constructors">.

=over 4

=item $class-E<gt>B<new>(%options)

Inherited, see L<Mail::Reporter/"Constructors">

 -Option--Default
  fields  <see description>

=over 2

=item fields => $name|$regex|\@names|\@regexes

Select the fields of a header which are to be handled.  Other
fields will not be used.  The value of this option is passed to
L<Mail::Message::Head::Complete::grepNames()|Mail::Message::Head::Complete/"Access to the header"> whenever converters feel
a need for header line selection.
By default, the C<To>, C<From>, C<Cc>, C<Bcc>, C<Date>, C<Subject>, and their
C<Resent-> counterparts will be selected.  Specify an empty list to get all
fields.

=back

=back

=head2 Attributes

Extends L<"Attributes" in Mail::Reporter|Mail::Reporter/"Attributes">.

=head2 Converting

=over 4

=item $obj-E<gt>B<selectedFields>($head)

Returns a list of fields to be included in the format.  The list is
an ordered selection of the fields in the actual header, and filtered
through the information as specified with L<new(fields)|Mail::Message::Convert/"METHODS">.

=back

=head2 Error handling

Extends L<"Error handling" in Mail::Reporter|Mail::Reporter/"Error handling">.

=over 4

=item $obj-E<gt>B<AUTOLOAD>()

Inherited, see L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<notImplemented>()

Inherited, see L<Mail::Reporter/"Error handling">

=back

=head2 Cleanup

Extends L<"Cleanup" in Mail::Reporter|Mail::Reporter/"Cleanup">.

=over 4

=item $obj-E<gt>B<DESTROY>()

Inherited, see L<Mail::Reporter/"Cleanup">

=back

=head1 DIAGNOSTICS

=over 4

=item Error: class $package does not implement method $method.

Fatal error: the specific C<$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 C<notImplemented()>

=back

=head1 SEE ALSO

This module is part of Mail-Message version 4.05,
built on April 10, 2026. Website: F<http://perl.overmeer.net/mailbox/>

=head1 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.

