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.