NAME

Mail::Milter::Authentication - A Perl Mail Authentication Milter

DESCRIPTION

A Perl Implemetation of email authentication standards rolled up into a single easy to use milter.

SYNOPSIS

Subclass of Net::Server::PreFork for bringing up the main server process for authentication_milter.

Please see Net::Server docs for more detail of the server code.

Please see the output of 'authentication_milter --help' for usage help.

FUNCTIONS

get_installed_handlers()

Return an array ref of installed handler modules.

METHODS

child_init_hook()

Hook which runs after forking, sets up per process items.

run_n_children_hook()

Hook which runs in parent before it forks children.

process_request()

Hook which runs for each request, sets up per request items and processes the request.

control($command)

Run a daemon command. Command can be one of start/restart/stop/status.

find_process()

Search the process table for an authentication_milter master process

get_valid_pid($pid_file)

Given a pid file, check for a valid process ID and return if valid.

start($hashref)

Start the server. This method does not return.

$hashref = {
    'pid_file'   => 'The pid file to use', #
    'daemon'     => 1/0,                   # Daemonize process?
}
fatal($error)

Log a fatal error and die in child

fatal_global($error)

Log a fatal error and die in child and parent

setup_handlers()

Setup the Handler objects.

load_handler( $name )

Load the $name Handler module

setup_handler( $name )

Setup the $name Handler object

destroy_handler( $name )

Remove the $name Handler

register_callback( $name, $callback )

Register the specified callback

sort_all_callbacks()

Sort the callbacks into the order in which they must be called

sort_callbacks( $callback )

Sort the callbacks for the $callback callback into the right order

destroy_objects()

Remove references to all objects

get_queue_id()

Return the queue ID (for logging) if possible.

logerror( $line )

Log to the error log.

loginfo( $line )

Log to the info log.

logdebug( $line )

Log to the debug log.

child_finish_hook()

Hook which runs when the child is about to finish.

get_client_details()

Get the details of the connecting client.

get_client_path()

Get the path of the connecting client.

get_client_port()

Get the port of the connecting client.

get_client_proto()

Get the protocol of the connecting client.

pre_loop_hook()

Hook which runs in the master before looping.

pre_server_close_hook()

Hook which runs before the server closes.

DEPENDENCIES

Email::Address
English
JSON
Mail::DKIM
Mail::DMARC
Mail::SPF
MIME::Base64
Module::Load
Module::Loaded
Net::DNS
Net::IP
Net::Server
Pod::Usage
Proc::ProcessTable
Sys::Hostname
Sys::Syslog

AUTHORS

Marc Bradshaw <marc@marcbradshaw.net>

COPYRIGHT

Copyright 2015

This library is free software; you may redistribute it and/or modify it under the same terms as Perl itself.