Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Net::Server::Mail::LMTUser Contributed Perl DocumentNet::Server::Mail::LMTP(3)

NAME
       Net::Server::Mail::LMTP - A module to implement the LMTP	protocol

SYNOPSIS
	   use Net::Server::Mail::LMTP;

	   my @local_domains = qw(example.com example.org);
	   my $server =	IO::Socket::INET->new( Listen => 1, LocalPort => 25 );

	   my $conn;
	   while($conn = $server->accept)
	   {
	       my $esmtp = Net::Server::Mail::LMTP->new( 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
       Override	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 Git repository:

       git clone git://github.com/rs/net-server-mail.git

       Git repository on the web:

       <https://github.com/rs/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 Guimard

perl v5.32.0			  2018-09-19	    Net::Server::Mail::LMTP(3)

NAME | SYNOPSIS | DESCRIPTION | EVENTS | SEE ALSO | AUTHOR | AVAILABILITY | BUGS | LICENCE | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Net::Server::Mail::LMTP&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help