Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A pure-perl implementation of a POP3 client.

Example Usage

# raw interface
my $pop =""), :port(110), :debug, :raw);
$pop.get-response # +OK

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

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

# simple interface
my $pop =""), :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)

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.


No description, website, or topics provided.







No releases published


No packages published

Contributors 4



  • Other 100.0%