| Email-Folder-POP3 documentation | Contained in the Email-Folder-POP3 distribution. |
Email::Folder::POP3 - Email::Folder Access to POP3 Folders
use Email::Folder;
use Email::FolderType::Net;
my $folder = Email::Folder->new('pop://user:pass@example.com:110');
print $_->header('Subject') for $folder->messages;
This software adds POP3 functionality to Email::Folder. Its interface is identical to the other Email::Folder::Reader subclasses.
username and password parameters may be sent to new(). If
used, they override any user info passed in the connection URI.
Email::Folder, Email::Folder::Reader, Email::FolderType::Net, URI::pop, Net::POP3.
This module is maintained by the Perl Email Project.
http://emailproject.perl.org/wiki/Email::Folder::POP3
Ricardo SIGNES, <rjbs@cpan.org> (current maintainer).
Casey West, <casey@geeknest.com> (previous maintainer)
GomoR, <netpkt@gomor.org> (original author)
Copyright (c) 2004 GomoR. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Email-Folder-POP3 documentation | Contained in the Email-Folder-POP3 distribution. |
package Email::Folder::POP3; use strict; use vars qw[$VERSION $POP3]; $VERSION = '1.013'; $POP3 ||= 'Net::POP3'; use base qw[Email::Folder::Reader]; use Net::POP3; use URI; sub _uri { my $self = shift; return $self->{_uri} ||= URI->new($self->{_file}); } sub _server { my $self = shift; return $self->{_server} if $self->{_server}; my $uri = $self->_uri; my $host = $uri->host; my $port = $uri->port || 110; my $server = $POP3->new($host, Port => $port, Timeout => 60) or die("Net::POP3->new('$host', Port => $port, Timeout => 60): $!"); my ($user, $pass) = @{$self}{qw[username password]}; ($user, $pass) = split ':', $uri->userinfo, 2 unless $user; $server->login($user, $pass) if $user; $self->{_next} = 1; return $self->{_server} = $server; } sub next_message { my $self = shift; my $message = $self->_server->get($self->{_next}); if ( $message ) { ++$self->{_next}; return join '', @{$message}; } $self->{_next} = 1; return; } 1; __END__