Email::Abstract::MIMEEntity - Email::Abstract wrapper for MIME::Entity


Email-Abstract documentation Contained in the Email-Abstract distribution.

Index


Code Index:

NAME

Top

Email::Abstract::MIMEEntity - Email::Abstract wrapper for MIME::Entity

DESCRIPTION

Top

This module wraps the MIME::Entity mail handling library with an abstract interface, to be used with Email::Abstract

SEE ALSO

Top

Email::Abstract, MIME::Entity.


Email-Abstract documentation Contained in the Email-Abstract distribution.

use strict;
package Email::Abstract::MIMEEntity;

use Email::Abstract::Plugin;
BEGIN { @Email::Abstract::MIMEEntity::ISA = 'Email::Abstract::MailInternet' };

my $is_avail;
sub is_available {
  return $is_avail if defined $is_avail;
  eval { require MIME::Entity; MIME::Entity->VERSION(5.501); 1 };
  return $is_avail = $@ ? 0 : 1;
}

sub target { "MIME::Entity" }

sub construct {
    require MIME::Parser;
    my $parser = MIME::Parser->new;
    $parser->output_to_core(1);
    my ($class, $rfc822) = @_;
    $parser->parse_data($rfc822);
}

sub get_body { pop->bodyhandle->as_string }

sub set_body {
    my ($class, $obj, $body) = @_;
    my @lines = split /\n/, $body;
    my $io = $obj->bodyhandle->open("w");
    foreach (@lines) { $io->print($_."\n") }
    $io->close;
}

1;