NAME
Email::Simple::FromHandle - an Email::Simple but from a handle
VERSION
version 0.055
SYNOPSIS
use Email::Simple::FileHandle;
open my $fh, "<", "email.msg";
my $email = Email::Simple::FromHandle->new($fh);
print $email->as_string;
# or
$email->stream_to(\*STDOUT);
DESCRIPTION
This is a subclass of Email::Simple which can accept filehandles as the source of an email. It will keep a reference to the filehandle and read from it when it needs to access the body. It does not load the entire body into memory and keep it there.
PERL VERSION
This library should run on perls released even a long time ago. It should work on any version of perl released in the last five years.
Although it may work on older versions of perl, no guarantee is made that the minimum required version will not be increased. The version may be increased for any reason, and there is no promise that patches will be accepted to lower the minimum required perl.
METHODS
In addition to the standard Email::Simple interface, the following methods are provided:
handle
This returns the handle given to construct the message. If the message was constructed with a string instead, it returns an IO::String object.
body_pos
This method returns the position in the handle at which the body begins. This is used for seeking when re-reading the body.
reset_handle
This method seeks the handle to the body position and resets the header-line iterator.
For unseekable handles (pipes, sockets), this will die.
getline
$str = $email->getline;
This method returns either the next line from the headers or the next line from the underlying filehandle. It only returns a single line, regardless of context. Returns undef
on EOF.
stream_to
$email->stream_to($fh, [ \%arg ]);
This method efficiently writes the message to the passed-in filehandle.
The second argument may be a hashref of options:
- reset_handle:
-
Whether or not to call
$self->reset_handle
before reading the message (default true). - chunk_size:
-
Number of bytes to read from
$self->handle
at once (default 65536). - write:
-
Coderef to use to print instead of
print $fh $chunk
. This coderef will receive two arguments, the 'filehandle' (which need not be a real filehandle at all) and the current chunk of data.
CREDITS
Ricardo SIGNES wrote Email::Simple.
Numerous improvement, especially streamability the handling of pipes, were made by Hans Dieter Pearcey.
AUTHOR
Ricardo SIGNES <cpan@semiotic.systems>
CONTRIBUTORS
Hans Dieter Pearcey <hdp@cpan.org>
Ricardo Signes <rjbs@semiotic.systems>
COPYRIGHT AND LICENSE
This software is copyright (c) 2006 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.