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

FreeBSD Manual Pages

  
 
  

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

NAME
       Net::SMTP::Server::Relay	- A simple relay module	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::Relay module implements simple SMTP relaying for
       use with	the Net::SMTP::Server module.  All this	module does is to take
       a given message and iterate through the list of recipients, doing DNS
       lookups for the associated MX record and	delivering the messages.  This
       module makes extensive use of the plethora of other modules already
       implemented for Perl (specifically the DNS and Net::SMTP	modules	in
       this case), and should give but a glimpse of the	potential for
       extending the Net::SMTP::Server's functionality to provide a full-
       featured	SMTP server, native to Perl.

       The above example illustrates the use of	the Net::SMTP::Server::Relay
       modules -- you simply have to instantiate the module, passing along the
       sender, recipients, and message.	 More formally:

	 $relay	= new Net::SMTP::Server::Relay($from, @to, $msg);

       Where $from is the sender, @to is an array containing the list of
       recipients, and $msg is the message to relay.

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::Client

perl v5.32.0			  2020-08-17		      Server::Relay(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::Relay&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help