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__ =encoding utf-8 =head1 NAME Email::Abstract::QpsmtpdTransaction - Email::Abstract wrapper for Qpsmtpd::Transaction =head1 SYNOPSIS use Email::Abstract; my $email = Email::Abstract->new($transaction)->cast('Email::MIME'); $email->as_string; $email->parts; =head1 DESCRIPTION Email::Abstract::QpsmtpdTransaction wraps Qpsmtpd::Transaction mail handling library with an abstract interface, to be used with L. =head1 *UN*SUPPORTED METHODS =over 4 =item C =item C 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 ;) =back =head1 SEE ALSO L (repository) =head1 AUTHOR Naoki Tomita Etomita@cpan.orgE =head1 LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut