Skip to content
No description, website, or topics provided.
Other
  1. Other 100.0%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/Net
t
LICENSE
META6.json
README.md

README.md

P6-Net-POP3

A pure-perl implementation of a POP3 client.

Example Usage

####
# raw interface
####
my $pop = Net::POP3.new(:server("your.server.here"), :port(110), :debug, :raw);
$pop.get-response # +OK

$pop.apop-login("username", "password");
# or (less secure)
$pop.user("username");
$pop.pass("password");

my $message-list = $pop.list; # +OK 2 messages\r\n1 120\r\n...
say $pop.retr(1); # +OK \r\nFrom:...
$pop.dele(1);
$pop.quit;

####
# simple interface
####
my $pop = Net::POP3.new(:server("your.server.here"), :port(110), :debug);
$pop.auth("username", "password"); # tries apop, then falls back to user/pass
my $count = $pop.message-count;
my @messages = $pop.get-messages;
for @messages {
    my $unique-id = .uid;
    my $raw-data = .data;
    my $email-mime = .mime; # returns Email::MIME object
                            # (requires Email::MIME installed to work)
    .delete;
}
$pop.quit;

Simple mode methods

Note that all of these methods should return a true value (or a valid false response, such as '0' from message-count) on success or a Failure object on failure.

  • new(:$server!, :$port, :$debug, :$socket, :$ssl, :$starttls, :$plain)

    Creates a new POP3 client and opens a connection to the server.

    $port defaults to 110.

    $debug will print the network traffic to $*ERR if set.

    $socket allows you to use a class other than IO::Socket::INET for network communication. If you pass in a defined object, Net::POP3 will assume it is an already connected socket.

  • auth($username, $password)

    Authenticates with the server. Attempts APOP first, and if the server doesn't support APOP or if the APOP login fails, will attempt a USER + PASS plain text login.

  • message-count()

    Returns the number of messages in your mailbox.

  • get-message(:$sid, :$uid)

    Returns a Net::POP3::Message object that refers to the message with the specified session id ($sid, the standard POP3 message number) or unique id ($uid, as returned from UIDL. NYI)

  • get-messages()

    Returns a list of Net::POP3::Message objects, one for each message in the current mailstore.

  • quit()

    Commits any message deletions and closes the connection to the server.

Net::POP3::Message Methods

This class contains the actual message from the POP3 server.

  • size()

    Returns the size of the message, in octets.

  • uid()

    Returns the unique id of the message (as returned by UIDL)

  • delete()

    Deletes this message from the POP3 server. Will not take effect until .quit is called on the main object.

  • data()

    Returns the raw email message as a string.

  • mime()

    Returns the email message as an Email::MIME object. Note that this will fail if Email::MIME is not installed.

You can’t perform that action at this time.