Email::Abstract::QpsmtpdTransaction - Email::Abstract wrapper for Qpsmtpd::Transaction


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

Index


Code Index:

NAME

Top

Email::Abstract::QpsmtpdTransaction - Email::Abstract wrapper for Qpsmtpd::Transaction

SYNOPSIS

Top

  use Email::Abstract;
  my $email = Email::Abstract->new($transaction)->cast('Email::MIME');

  $email->as_string;
  $email->parts;

DESCRIPTION

Top

Email::Abstract::QpsmtpdTransaction wraps Qpsmtpd::Transaction mail handling library with an abstract interface, to be used with Email::Abstract.

*UN*SUPPORTED METHODS

Top

set_body
constract

This means you can cast Qpsmtpd::Transaction to some object supported by Email::Abstract, but cannot cast Email::Abstract-ed object to Qpsmtpd::Transaction. Patches are welcome ;)

SEE ALSO

Top

http://coderepos.org/share/browser/lang/perl/Email-Abstract-QpsmtpdTransaction (repository)

AUTHOR

Top

Naoki Tomita <tomita@cpan.org>

LICENSE

Top

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


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

package Email::Abstract::QpsmtpdTransaction;
use strict;
use warnings;
our $VERSION = '0.02';

use Email::Abstract::Plugin;

BEGIN {
    @Email::Abstract::QpsmtpdTransaction::ISA = 'Email::Abstract::Plugin';
};

sub target { "Qpsmtpd::Transaction" }

sub construct {
    die "doesn't support now.";
}

sub get_header {
    my ($class, $obj, $header) = @_;
    $obj->header($header);
}

sub get_body {
    my ($class, $obj) = @_;
    $obj->body_as_string();
}

sub set_header {
    my ($class, $obj, $header, @data) = @_;
    $obj->header($header, @data);
}

sub set_body {
    die "doesn't support now.";
}

sub as_string {
    my ($class, $obj) = @_;
    
    if ($obj->{_body_file}) {
        open(my $fh, '<', $obj->body_filename) or die $!;
        my $source = do { local $/; <$fh> };
        close $fh;
        return $source;
    } else {
        return join "", @{ $obj->{_body_array} };
    }
}

1;
__END__