<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">use strict;
package Email::Abstract::MailInternet;
# ABSTRACT: Email::Abstract wrapper for Mail::Internet
$Email::Abstract::MailInternet::VERSION = '3.008';
use Email::Abstract::Plugin;
BEGIN { @Email::Abstract::MailInternet::ISA = 'Email::Abstract::Plugin' };

sub target { "Mail::Internet" }

# We need 1.77 because otherwise headers unfold badly.
my $is_avail;
sub is_available {
  return $is_avail if defined $is_avail;
  require Mail::Internet;
  eval { Mail::Internet-&gt;VERSION(1.77) };
  return $is_avail = $@ ? 0 : 1;
}

sub construct {
    require Mail::Internet;
    my ($class, $rfc822) = @_;
    Mail::Internet-&gt;new([ map { "$_\x0d\x0a" } split /\x0d\x0a/, $rfc822]);
}

sub get_header {
    my ($class, $obj, $header) = @_;
    my @values = $obj-&gt;head-&gt;get($header);
    return unless @values;

    # No reason to s/// lots of values if we're just going to return one.
    $#values = 0 if not wantarray;

    chomp @values;
    s/(?:\x0d\x0a|\x0a\x0d|\x0a|\x0d)\s+/ /g for @values;

    return wantarray ? @values : $values[0];
}

sub get_body {
    my ($class, $obj) = @_;
    join "", @{$obj-&gt;body()};
}

sub set_header {
    my ($class, $obj, $header, @data) = @_;
    my $count = 0;
    $obj-&gt;head-&gt;replace($header, shift @data, ++$count) while @data;
}

sub set_body {
    my ($class, $obj, $body) = @_;
    $obj-&gt;body( map { "$_\n" } split /\n/, $body );
}

sub as_string { my ($class, $obj) = @_; $obj-&gt;as_string(); }

1;

#pod =head1 DESCRIPTION
#pod
#pod This module wraps the Mail::Internet mail handling library with an
#pod abstract interface, to be used with L&lt;Email::Abstract&gt;
#pod
#pod =head1 SEE ALSO
#pod
#pod L&lt;Email::Abstract&gt;, L&lt;Mail::Internet&gt;.
#pod
#pod =cut

__END__

=pod

=encoding UTF-8

=head1 NAME

Email::Abstract::MailInternet - Email::Abstract wrapper for Mail::Internet

=head1 VERSION

version 3.008

=head1 DESCRIPTION

This module wraps the Mail::Internet mail handling library with an
abstract interface, to be used with L&lt;Email::Abstract&gt;

=head1 SEE ALSO

L&lt;Email::Abstract&gt;, L&lt;Mail::Internet&gt;.

=head1 AUTHORS

=over 4

=item *

Ricardo SIGNES &lt;rjbs@cpan.org&gt;

=item *

Simon Cozens &lt;simon@cpan.org&gt;

=item *

Casey West &lt;casey@geeknest.com&gt;

=back

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2004 by Simon Cozens.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
</pre></body></html>