SMTPRD performs an SMTP Relay or a Null SMTP conversation over its input and output. If no socket is specified as an argument, SMTPRD uses its standard input and standard output for input and output. Otherwise, it uses the named socket, which it closes when it has finished with it. The IP address and TCP port number on which SMTP Submission service is thus provided is determined by its parent process, not by SMTPRD itself. Conventionally, the port number is 25 and the IP address is one that is reachable by Internet at large.
SMTPRD is designed to be spawned on demand by TCPSRUN. It can also be spawned by INETD, although the control of client access levels based upon the client's IP address, which TCPSRUN does, will be unavailable as a consequence.
The list of the mailbox domains for which SMTPRD accepts mail, is
configured via the
command-line options. Mail for any other domains will be rejected. So
all domains whose mailboxes are stored locally and all domains for which
the local mail system knowingly acts as a backup SMTP Relay server should
be listed with these options.
/ACCEPTSELFIP option is a pacification measure, to please
people who mis-read
RFC 2821 § 4.5.1.
It is not, in fact, a requirement that an SMTP Relay server
accept mail addressed to
] for the IP addresses
a.b.c.d that it listens on. This is, however, what
/ACCEPTSELFIP will effect if enabled. It is recommended that
one not use this option.
SMTPRD adds received messages to the maildrop directory. The maildrop is taken to be the working directory of the dæmon.
A "TCPService.RUN" run file, for SMTPRD to be spawned by TCPSRUN, would typically look similar to:
chdir %MAILQUEUEDIR% program %APPS%\JdeBP\IU\Bin\SMTPRD.exe argument SMTPRD argument %3
TCPSRUN itself would be invoked under RUNSVC, the Service Manager in the OS/2 Command Line Utilities version 2.2, with a run file similar to:
program %APPS%\JdeBP\IU\bin\TCPSRun.exe chdir %_BOOT%:\Config\Services\%1 argument TCPSRun argument 127.0.0.1 argument smtp argument TCPService.RUN