SMTPRC [/?] [/SRV_SUPERDOMAINS[+|-]] [/SRV_SELF[+|-]] [/IMPLICIT[+|-]] [/IP6ADDR[+|-]] [/CLIENTIP[+|-]] [/CLIENTPORT[+|-]] [/V[+|-]] [/HELO[+|-]] [/TRIGGER string] [/SELF string] domain recipient-lists …


SMTPRC is invoked by the SMTP Remote Delivery dæmon and is the workhorse that actually performs delivery.

SMTPRC communicates with the other servers in the SMTP message handling system via a semaphore. SMTPRC triggers the SMTP Posting Office Sorting dæmon's semaphore when it has generated a bounce message. Thus the semaphore names supplied on the command line should match the semaphore names supplied to the other dæmons.

domain specifies the target domain. Each SMTP Relay Client process targets mailboxes in one domain. SMTPRC looks up the SMTP Relay servers for that domain, and attempts to connect to them, using the weightings and fallback priorities specified for them, until it finds one that it can connect to.

SMTPRC locates servers from the domain string supplied in the normal way, using smtp as the service name, tcp as the transport name, and 25 as the well-known port number.

SMTPRC only makes one connection. It will attempt to re-use that connection to deliver all pending messages that have been routed to the same domain. This avoids the overhead of tearing down and rebuilding a fresh SMTP connection for each individual message.

It is SMTPRC that is responsible for loop detection, to ensure that an MTS doesn't end up delivering mail remotely in a loop to itself. Thus SMTPRC has to know the various IP addresses of the mail system's own SMTP Relay servers. These must be provided via the /SELF option.

Note: Where the MTS's own SMTP Relay servers are is something that cannot be automatically determined. They may be on completely different machines. This is something that only a human being, the mail system administrator, can know correctly, and must explicitly tell to the software.

Example RUN files

A run file for invoking SMTPRC from SMTPRCD typically would look similar to:

  program %APPS%\JdeBP\IU\bin\SMTPRC.exe
  argument SMTPRC
  argument /TRIGGER:\SEM32\IU\SMTP\PD
  argument /SELF:
  argument /SELF:

Command-specific options

Log the details of the SMTP conversation.
Enable sending an EHLO/HELO command first. HELO and EHLO are not required parts of the SMTP Submission protocol and good servers will just ignore them if they are sent. Sending them is in most cases just a waste of a round-trip delay.
Specify the semaphore to signal whenever a bounce message has been generated.
Specify an IP address of this MTS's own SMTP Relay server, which will be excluded (along with any lower priority servers) from all MX lists.

The Internet Utilities are © Copyright Jonathan de Boyne Pollard. "Moral" rights are asserted.