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

FreeBSD Manual Pages

  
 
  

home | help
Server::Client(3)     User Contributed Perl Documentation    Server::Client(3)

NAME
       Net::SMTP::Server::Client - Client session handling for
       Net::SMTP::Server.

SYNOPSIS
	 use Carp;
	 use Net::SMTP::Server;
	 use Net::SMTP::Server::Client;
	 use Net::SMTP::Server::Relay;

	 $server = new Net::SMTP::Server('localhost', 25) ||
	   croak("Unable to handle client connection: $!\n");

	 while($conn = $server->accept()) {
	   # We	can perform all	sorts of checks	here for spammers, ACLs,
	   # and other useful stuff to check on	a connection.

	   # Handle the	client's connection and	spawn off a new	parser.
	   # This can/should be	a fork() or a new thread,
	   # but for simplicity...
	   my $client =	new Net::SMTP::Server::Client($conn) ||
	       croak("Unable to	handle client connection: $!\n");

	   # Process the client.  This command will block until
	   # the connecting client completes the SMTP transaction.
	   $client->process || next;

	   # In	this simple server, we're just relaying	everything
	   # to	a server.  If a	real server were implemented, you
	   # could save	email to a file, or perform various other
	   # actions on	it here.
	   my $relay = new Net::SMTP::Server::Relay($client->{FROM},
						    $client->{TO},
						    $client->{MSG});
	 }

DESCRIPTION
       The Net::SMTP::Server::Client module implements all the session
       handling	required for a Net::SMTP::Server::Client connection.  The
       above example demonstrates how to use Net::SMTP::Server::Client with
       Net::SMTP::Server to handle SMTP	connections.

       $client = new Net::SMTP::Server::Client($conn)

       Net::SMTP::Server::Client accepts one argument that must	be a handle to
       a connection that will be used for communication.

       Once you	have a new client session, simply call:

       $client->process

       This processes an SMTP transaction.  THIS MAY APPEAR TO HANG --
       ESPECIALLY IF THERE IS A	LARGE AMOUNT OF	DATA BEING SENT.  Once this
       method returns, the server will have processed an entire	SMTP
       transaction, and	is ready to continue.

       Once $client->process returns, various fields have been filled in.
       Those are:

	 $client->{TO}	  -- This is an	array containing the intended
			     recipients	for this message.  There may be
			     multiple recipients for any given message.

	 $client->{FROM}  -- This is the sender	of the given message.
	 $client->{MSG}	  -- The actual	message	data. :)

AUTHOR AND COPYRIGHT Net::SMTP::Server / SMTP::Server is Copyright(C) 1999,
       MacGyver	(aka Habeeb J. Dihu) <macgyver@tos.net>.  ALL RIGHTS RESERVED.

       You may distribute this package under the terms of either the GNU
       General Public License or the Artistic License, as specified in the
       Perl README file.

SEE ALSO
       Net::SMTP::Server::Server, Net::SMTP::Server::Relay

perl v5.32.0			  2020-08-17		     Server::Client(3)

NAME | SYNOPSIS | DESCRIPTION | AUTHOR AND COPYRIGHT Net::SMTP::Server / SMTP::Server is Copyright(C) 1999, | SEE ALSO

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

home | help