Overview
After changing the lmcfg.txt file to allow TLS by setting $starttls_extension_enabled="true"
you notice that message delivery is taking significantly longer than before.
Prerequisites
- To complete the solution you must be running version 12.3.9 or higher. We recommend upgrading to the latest version for optimal performance.
- Access to edit:
- Windows:
C:\Program Files\ListManager\lmcfg.txt
- Linux:
~/ListManager/bin/lmcfg.txt
- Windows:
Solution
In order to resolve issues related to TLS implementation, it is necessary to implement a new algorithm that balances the connection between the ListManager instance and the destination SMTP server. This solution is especially important when there are a large number of TLS enabled domains on the mailing list. Following this procedure will avoid SMTP server penalties that cause slowness, timeouts, and hard bounces.
- Navigate to and edit the lmcfg.txt file in order to assign the following values:
$starttls_extension_enabled= "true";
$logging_of_average_messages_sent_per_connection_enabled = "true";
$recipients_ordering_by_domain_first_enabled = "true";
$min_messages_per_connection = "10";
- Save the changes and restart Lyris LM
After the server restarts, message delivery time is improved.
Algorithm Details
Setting | Description |
$starttls_extension_enabled |
By default, this is set to "false". If it is set to "false", LM will send out unencrypted emails. If it is set to "true", LM will send out encrypted emails depending on whether the receiving SMTP server supports the STARTTLS extension. |
$logging_of_average_messages_sent_per_connection_enabled |
When enabled, LM will calculate the average of messages sent by connection and used to decide when to open a new connection. |
$recipients_ordering_by_domain_first_enabled |
When enabled, LM will sort the recipient queue by domains alphabetically. This will force LM to use the same connection and avoid losing time in the handshake with a new connection. Note that it reduces the number of parallel connections so using this option in some cases reduces the sending performance. |
$min_messages_per_connection |
This sets the minimum number of messages per connection to avoid creating new connections and losing time performing the handshake for TLS connections. |