Generic SMTP channels

From Messaging Server Technical Reference Wiki
Jump to: navigation, search

The channel programs test_smtp_master and test_smtp_slave are provided as models upon which additional channels using the SMTP protocol can be built. They are intended as examples only and not as production channel programs.

Both programs require that the environment variable PMDF_CHANNEL (on UNIX) translate to the name of the channel they are servicing -- and expect that channel to be defined in the MTA configuration.

When test_smtp_master is executed, it asks the Job Controller for messages waiting to be processed by the channel PMDF_CHANNEL. SMTP commands are written to stdout and responses are expected on stdin.

Similarly, test_smtp_slave accepts SMTP commands on stdin and writes responses to stdout.

The the imsimta run utility and the regular configuration of the Job Controller never invoke test_smtp_master and will have to be modified in order to use test_smtp_master. The configuration to execute tcp_master can be used as a model to drive test_smtp_master.

test_smtp_masterincludes code to distinguish between use as a direct connection to the target system and use for routing through a gateway. This facility parallels the gateway support found in TCP/IP channels, namely support for the daemon option.

Though test_smtp_master and test_smtp_slave never open or receive, respectively, an actual TCP/IP connection, if the environment variables TRANSPORTINFO and APPLICATIONINFO are set, then these programs will use that information to initialize the relevant fields that would be present in a real SMTP-over-TCP/IP message transport.

test_smtp_masterand test_smtp_slave perform normal MTA channel initialization steps, including consulting the MTA configuration to determine if the named channel (the channel PMDF_CHANNEL translates to) has any local_host_alias set; they check for any TCP/IP-channel-specific options; and they "support" typical channel options relevant to SMTP-over-TCP/IP channels, such as master_debug, slave_debug, smtp*, and (as previously mentioned) the daemon channel option.

See also: