Rechercher une page de manuel
Net::Server::Mail::LMTP.3pm
Langue: en
Version: 2007-04-10 (debian - 07/07/09)
Section: 3 (Bibliothèques de fonctions)
NAME
Net::Server::Mail::LMTP - A module to implement the LMTP protocoleSYNOPSIS
use Net::Server::Mail::LMTP; 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::LMTP socket => $conn; # adding some handlers $esmtp->set_callback(RCPT => \&validate_recipient); $esmtp->set_callback(DATA => \&queue_message); $esmtp->process(); $conn->close() } sub validate_recipient { my($session, $recipient) = @_; my $domain; if($recipient =~ /@(.*)>\s*$/) { $domain = $1; } if(not defined $domain) { return(0, 513, 'Syntax error.'); } elsif(not(grep $domain eq $_, @local_domains)) { return(0, 554, "$recipient: Recipient address rejected: Relay access denied"); } return(1); } sub queue_message { my($session, $data) = @_; my $sender = $session->get_sender(); my @recipients = $session->get_recipients(); return(0, 554, 'Error: no valid recipients') unless(@recipients); my $msgid = add_queue($sender, \@recipients, $data) or return(0); return(1, 250, "message queued $msgid"); }
DESCRIPTION
This class implement the LMTP (RFC 2033) protocol.This class inherit from Net::Server::Mail::ESMTP. Please see Net::Server::Mail::ESMTP for documentation of common methods.
EVENTS
Descriptions of callback who's can be used with set_callback method. All handle takes the Net::Server::Mail::ESMTP object as first argument and specific callback's arguments.LHLO
Same as ESMTP EHLO, please see Net::Server::Mail::ESMTP.
DATA
Overide the default DATA event by a per recipient response. It will be called for each recipients with data (in a scalar reference) as first argument followed by the current recipient.
SEE ALSO
Please, see Net::Server::Mail, Net::Server::Mail::SMTP and Net::Server::Mail::ESMTP.AUTHOR
Olivier Poitrey <rs@rhapsodyk.net>AVAILABILITY
Available on CPAN.anonymous SVN repository:
svn co https://emailproject.perl.org/svn/Net-Server-Mail
SVN repository on the web:
http://emailproject.perl.org/svn/Net-Server-Mail/
BUGS
Please use CPAN system to report a bug (http://rt.cpan.org/).LICENCE
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.This library 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 GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
COPYRIGHT
Copyright (C) 2002 - Olivier Poitrey, 2007 - Xavier GuimardContenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre