=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::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.
When the conversion does not change the contents of the body, most of
the converters will return the source object.  In any case, an
L<Mail::Message::Body|Mail::Message::Body> is returned with the conversion applied but as
much of the other meta data stored in the source body unchanged.

In most cases, converters are created by Mail::Message when they are
needed; have a look at the C<encode> and C<decoded> methods on message
objects.

The following converters are currently available:

=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::MailInternet|Mail::Message::Convert::MailInternet>

Converts the simple 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::TextAutoformat|Mail::Message::Convert::TextAutoformat>

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

=back



=head1 METHODS


=head2 Constructors


Mail::Message::Convert-E<gt>B<new>(OPTIONS)

=over 4

S<< Option--Defined in     --Default >>
S<< fields                   <see description> >>
S<< log     L<Mail::Reporter>  C<'WARNINGS'> >>
S<< trace   L<Mail::Reporter>  C<'WARNINGS'> >>

. fields NAMES|ARRAY-OF-NAMES|REGEXS

=over 4

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

. log LEVEL

. trace LEVEL

=back

=head2 Converting


$obj-E<gt>B<selectedFields>(HEAD)

=over 4

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


$obj-E<gt>B<AUTOLOAD>

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<addReport>(OBJECT)

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])

Mail::Message::Convert-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<errors>

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<log>([LEVEL [,STRINGS]])

Mail::Message::Convert-E<gt>B<log>([LEVEL [,STRINGS]])

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<logPriority>(LEVEL)

Mail::Message::Convert-E<gt>B<logPriority>(LEVEL)

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<logSettings>

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<notImplemented>

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<report>([LEVEL])

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<reportAll>([LEVEL])

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<trace>([LEVEL])

=over 4

See L<Mail::Reporter/"Error handling">

=back

$obj-E<gt>B<warnings>

=over 4

See L<Mail::Reporter/"Error handling">

=back

=head2 Cleanup


$obj-E<gt>B<DESTROY>

=over 4

See L<Mail::Reporter/"Cleanup">

=back

$obj-E<gt>B<inGlobalDestruction>

=over 4

See L<Mail::Reporter/"Cleanup">

=back




=head1 DIAGNOSTICS

I<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.






=head1 REFERENCES

See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.

=head1 COPYRIGHTS

Distribution version 2.067.
Written by Mark Overmeer (mark@overmeer.net).  See the ChangeLog for
other contributors.

Copyright (c) 2001-2006 by the author(s). All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.