Page tree
Skip to end of metadata
Go to start of metadata

Overview

The SMTP Transport Adaptor (hereinafter the SMTP adaptor) is intended to send FIX messages from FIXServer to clients using SMTP protocol.

Configuration

The SMTP adaptor is configured by means of the following properties:

Property name
Description
TransportLayer.SmtpTA.DllNameContains path and name of the SMTP adaptor DLL. 
The property is required.
TransportLayer.SmtpTA.DescriptionAdaptor name. 
The property is required
TransportLayer.SmtpTA.TypeType of the adaptor library, contains 'DLL' value.
The property is required.
TransportLayer.SmtpTA.SMTPSessions

This parameter determines the names of SMTP clients. 
It is necessary to define the parameters described below for each client.
The format is 'SMTPSession.X.ParameterName' where 'X' is the name of client.

TransportLayer.SmtpTA.SMTPSessions.DefaultServerNameDefault SMTP server name or IP address. 
The property is not required
TransportLayer.SmtpTA.SMTPSessions.DefaultServerPortDefault SMTP server port. 
The property is not required.
TransportLayer.SmtpTA.SMTPSessions.DefaultFromDefault value of the 'From' field. 
The property is not required.
TransportLayer.SmtpTA.SMTPSessions.DefaultCCDefault value of the 'CC' field. 
The property is not required.
TransportLayer.SmtpTA.SMTPSessions.DefaultBCCDefault value of the 'BCC' field. 
The property is not required
TransportLayer.SmtpTA.SMTPSessions.DefaultSmartEmailProcessingWhen true, the corresponding tags will be used for e-mail Subject and Body at FIX EMail message conversation. 
The property is not required.
TransportLayer.SmtpTA.SMTPSessions.DefaultSendingTimeoutSending message timeout, common for all SMTP sessions. 
The property is not required.
TransportLayer.SmtpTA.SMTPSessions.DefaultConnectionTimeoutSMTP server connection timeout, common for all SMTP sessions. 
The property is not required.
TransportLayer.SmtpTA.SMTPSession.XXX.ServerNameSMTP server name or IP address. 
The property is required when DefaultServerName is not defined.
TransportLayer.SmtpTA.SMTPSession.XXX.ServerPortSMTP server port. The property is required whenDefaultServerPort ia not defined.
TransportLayer.SmtpTA.SMTPSession.XXX.SecureConnectionType of secure connection: TLS, SSL. 
The property is required if secure connection is needed, otherwise - not required.
TransportLayer.SmtpTA.SMTPSession.XXX.LoginUser login. 
The property is required if authorization is needed, otherwise - not required.
TransportLayer.SmtpTA.SMTPSession.XXX.PasswordUser password. 
The property is required if authorization is needed, otherwise - not required.
TransportLayer.SmtpTA.SMTPSession.XXX.FromValue of the 'From' field. 
The property is not required if DefaultFrom defined, otherwise - required.
TransportLayer.SmtpTA.SMTPSession.XXX.ToValue of the 'To' field. 
The property is required.
TransportLayer.SmtpTA.SMTPSession.XXX.CCValue of the 'CC' field. 
The property is not required.
TransportLayer.SmtpTA.SMTPSession.XXX.BCCValue of the 'BCC' field. 
The property is not required.
TransportLayer.SmtpTA.SMTPSessions.XXX.SmartEmailProcessingWhen true, the corresponding tags will be used for e-mail Subject and Body at FIX EMail message conversation. 
The property is not required.
TransportLayer.SmtpTA.SMTPSessions.XXX.SendingTimeoutMessage sending timeout, defined for a specified session. 
The property is not required.
TransportLayer.SmtpTA.SMTPSessions.XXX.ConnectionTimeoutSMTP server connection timeout, defined for a specified session.
The property is not required.

Note that all changes in properties file are applied only after FixEdge restart.

Integration with FixEdge

Execute the following steps to integrate the SMTP adaptor into the FixEdge:

  1. Open the FixEdge properties file (FIXEdge.properties by default).
  2. Find 'TransportLayer.TransportAdapters' property
    1. Add 'TransportLayer.TransportAdapters' property in case it does not exist
  3. Set 'TransportLayer.SmtpTA' to the value of 'TransportLayer.TransportAdapters' property:

    TransportLayer.TransportAdapters = TransportLayer.SmtpTA
    1. If 'TransportLayer.TransportAdapters' property already has a value - append ',TransportLayer.SmtpTA' to the value:

      TransportLayer.TransportAdapters = ...,TransportLayer.SFSAdaptorDLL,TransportLayer.SmtpTA
  4. Add 'TransportLayer.SmtpTA.Description' property with value - SMTP adaptor name:

    TransportLayer.SmtpTA.Description = SMTP Transport Adaptor DLL
  5. Add 'TransportLayer.SmtpTA.DllName' property with value - path to the SMTP adaptor dll:

    TransportLayer.SmtpTA.DllName = bin/SMTPAdaptorDll.dll
  6. Add 'TransportLayer.SmtpTA.Type' property with 'DLL'value:

    TransportLayer.SmtpTA.Type = DLL
  7. Add the set of default properties:

    TransportLayer.SmtpTA.SMTPSessions.DefaultServerName = mail.test_test.com
    TransportLayer.SmtpTA.SMTPSessions.DefaultServerPort = 25
    TransportLayer.SmtpTA.SMTPSessions.DefaultSendingTimeout = 10
    TransportLayer.SmtpTA.SMTPSessions.DefaultConnectionTimeout = 10
    TransportLayer.SmtpTA.SMTPSessions.DefaultSmartEmailProcessing = false
  8. Add 'TransportLayer.SmtpTA.SMTPSessions property with value - the set of SMTP client's names:

    TransportLayer.SmtpTA.SMTPSessions = TestSmtp
  9. Add properties for each client, like this:

    TransportLayer.SmtpTA.SMTPSession.TestSmtp.ServerName = mail.test_test.com
    TransportLayer.SmtpTA.SMTPSession.TestSmtp.ServerPort = 25
    TransportLayer.SmtpTA.SMTPSession.TestSmtp.To = jsg@test_test_btobits.com
    TransportLayer.SmtpTA.SMTPSession.TestSmtp.From = jsg@test_test_btobits.com
    TransportLayer.SmtpTA.SMTPSession.TestSmtp.CC = 
    TransportLayer.SmtpTA.SMTPSession.TestSmtp.BCC = 
  10. Restart FixEdge to apply changes

After changes are applied the FixEdge properties file may look like this:

#------------------------------------------------------------
# Transport Layer Section
#------------------------------------------------------------ 
TransportLayer.TransportAdapters = TransportLayer.SmtpTA ....
#------------------------------------------------------------ 
# SMTP Adaptor settings 
#------------------------------------------------------------ 
# SMTP adaptor name 
TransportLayer.SmtpTA.Description = SMTP Transport Adaptor 
# Contains path and name of the SMTP adaptor dll. Property is required 
TransportLayer.SmtpTA.DllName = ./bin/SMTPAdaptorDll.dll 
# Type of the adaptor library, has contains value 'DLL'. Property is required 
TransportLayer.SmtpTA.Type = DLL 
TransportLayer.SmtpTA.SMTPSessions = testSmtp 
# SMTP server host. Required when DefaultServerName not defined 
TransportLayer.SmtpTA.SMTPSession.testSmtp.ServerName = mail.test_test.com 
# SMTP server port. Required when DefaultServerPort not defined 
TransportLayer.SmtpTA.SMTPSession.testSmtp.ServerPort = 25 
# email receiver. Required 
TransportLayer.SmtpTA.SMTPSession.testSmtp.To = jsg@test_test_btobits.com; 
# email sender. Required when DefaultFrom not defined 
TransportLayer.SmtpTA.SMTPSession.testSmtp.From = jsg@test_test_btobits.com 
# email CC receivers. Not required 
TransportLayer.SmtpTA.SMTPSession.testSmtp.CC = 
# email BCC receivers. Not required 
TransportLayer.SmtpTA.SMTPSession.testSmtp.BCC =

Monitoring (view logs)

By default the SMTP adaptor puts log messages into the FIXEdge log. Ececute the following steps to configure the SMTP adaptor logging into a separate file:

  1. Open FixEdge properties file
  2. Add 'Log.SMTPAdaptor.File.Name' property with value - path and name of the SMTP adaptor log file.

    Log.SMTPAdaptor.File.Name = SMTP.log
  3. Restart FixEdge

When the SMTP adaptor starts the following record will be written into the log file (xxx is the SMTP adaptor version):

[NOTE] 20070215-11:20:12.437 - SMTP Adaptor v.xxx started.

FAQ

Q: Is it possible to use another prefix of the SMTP adaptor properties (not 'TransportLayer.SmtpTA')?

A: The SMTP adaptor requires the 'TransportLayer.SmtpTA' prefix for adaptor's properties, another prefix is prohibited.


Q: How to check network configuration is allowed to send emails from the host.
A: A test email can be sent with smtp-source SMTP/LMTP test generator tool:

smtp-source -v -f <from> -t <to> -S "Test Email" <email_server>


Troubleshooting

Problem
Solution

FixEdge start fails and the FixEdge log file contains the following record:

[FATAL] 20070215-11:42:25.250 - Transport Layer has failed to initialize: Error loading DLL './/../SMTPAdaptorAddin.dll '. : The specified module could not be found. (126)

FixEdge is unable to find the SMTP adaptor library file. Make sure that 'TransportLayer.SmtpTA.DllName' contains valid path and name.

FixEdge start fails and the FixEdge log file contains the following record:

[FATAL] 20070215-11:45:12.312 - Transport Layer has failed to initialize: Cannot find the 'TransportLayer.SmtpTA.XXX' property.

The SMTP adaptor was not configured properly. The required 'TransportLayer.SmtpTA.XXX' property does not exist in the FixEdge property file.
FixEdge is started but the FixEdge log file does not contain 'SMTP Adaptor v.xxx started' record.

Make sure that the SMTP adaptor was configured properly in the FixEdge property file:

  1. 'TransportLayer.SmtpTA' added into the 'TransportLayer.TransportAdapters' property
  2. 'Log.SMTPAdaptor.File.Name' property that redirects the SMTP adaptor log into another file does not exist.

Make sure that the FixEdge log file does not contain any related error messages.

 

 

  • No labels