|
NAMENet::Server::Mail::ESMTP::AUTH - SMTP Authentification extensions for Net::Server::Mail::ESMTPSYNOPSISuse Net::Server::Mail::ESMTP; my @local_domains = qw(example.com example.org); my $server = new IO::Socket::INET Listen => 1, LocalPort => 25; my $conn; while($conn = $server->accept) { my $esmtp = new Net::Server::Mail::ESMTP socket => $conn; # activate AUTH extension $esmtp->register('Net::Server::Mail::ESMTP::AUTH'); # adding AUTH handler $esmtp->set_callback(AUTH => \&validate_auth); $esmtp->set_callback(DATA => \&queue_message); $esmtp->process; } sub validate_auth { my ($session, $username, $password) = @_; if ($username eq 'ROBERT' and $password eq 'TOTO04') { # AUTH SUCCESFULL $session->{AUTH}->{ok} = 1; return 1; } else { # AUTH FAILED return 0; } } sub queue_message { my($session, $data) = @_; # providing AUTH doesn't make it mandatory. # A client might not use AUTH at all! # You must deal now with permissions: unless ($session->{AUTH}->{ok}) { # warn "no AUTH supplied!"; return(0, 530, 'Error: Authentication required'); } ... do stuff } FEATURES* AUTH LOGIN method support * AUTH PLAIN method support DESCRIPTION"Net::Server::Mail::ESMTP::AUTH" is an extension to provide ESMTP Authentification support to Net::Server::Mail::ESMTP module. Actually only AUTH LOGIN and AUTH PLAIN methods are supported.AUTH callback is called with login and password who was given by user's mail client, AUTH callback should return 1 when authentification mechanism was succesfull otherwise 0. SEE ALSOPlease, see Net::Server::Mail::SMTP and Net::Server::Mail::ESMTP for more documentations.AUTHORSylvain Cresto <scresto@gmail.com>Thanks to Chris <chris at u- club.de> BUGSPlease send bug-reports to scresto@gmail.com.LICENCEThis library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.COPYRIGHTCopyright (C) 2004, 2016 - Sylvain Cresto
Visit the GSP FreeBSD Man Page Interface. |