NAME

Mail::POP3 -- a module implementing a full POP3 server

SYNOPSIS

use Mail::POP3;
my $config_text = Mail::POP3->from_file($config_file);
my $config = Mail::POP3->read_config($config_text);
Mail::POP3->make_sane($config);
while (my $sock = $server_sock->accept) {
  my $server = Mail::POP3::Server->new(
    $config,
  );
  $server->start(
    $sock,
    $sock,
    $sock->peerhost,
  );
}

DESCRIPTION

Mail::POP3 and its associated classes work together as follows:

Mail::POP3::Daemon does the socket-accepting.
Mail::POP3::Server does (most of) the network POP3 stuff.
Mail::POP3::Security::User and Mail::POP3::Security::Connection do the checks on users and connections.
Mail::POP3::Folder::* classes handles the mail folders.

This last characteristic means that diverse sources of information can be served up as though they are a POP3 mailbox by implementing a Mail::POP3::Folder subclass. An example is provided in Mail::POP3::Folder::webscrape, and included is a working configuration file that makes the server connect to Jobserve (as of Jan 2014) and provide a view of jobs as email messages in accordance with the username which provides a colon-separated set of terms: keywords (encoding spaces as +), location radius in miles, location (e.g. Berlin). E.g. the username perl:5:Berlin would search for jobs relating to Perl within 5 miles of Berlin.

OVERVIEW

Mail::POP3 is a working POP3 server module, with a working mpopd that can either work as a standalone, be called from inetd, or be used in non-forking mode for use on Windows platforms that do not do forking correctly.

SCRIPTS

mpopd

The core. Read this to see how to use modules.

mpopdctl

Gives command-line control of a running mpopd.

mpopdstats

Gives command-line statistics from mpopd.

installscript

Helps install mpopd and create configuration.

update-conf

Helps you upgrade an older config (the file format changed).

DESIGN

Mail::POP3::Daemon does the socket-accepting.
Mail::POP3::Server does (most of) the network POP3 stuff.
Mail::POP3::Security::{User,Connection} do the checks on users and connections.
Mail::POP3::Folder::* classes handles the mail folders.

This last characteristic means that diverse sources of information can be served up as though they are a POP3 mailbox by implementing a M::P::F subclass. An example is provided in M::P::F::webscrape.

FUTURE

This module will become a Net::Server subclass, such that the Folder functionality will be folded back into the server, in a class called (probably) Net::Server::POP3::webscrape (etc).

METHODS

All class methods.

from_file

Given a file, returns contentx.

make_sane

Mutates given config hashref to have good, default values.

read_config

Given config text, evals it then version-checks.

COPYRIGHT

Copyright (c) Mark Tiramani 1998-2001 - up to version 2.21. Copyright (c) Ed J 2001+ - version 3+. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

DISCLAIMER

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Artistic License for more details.