Feature: 8.6 Email Improvements - Multiple Email Servers, Universal Throttling & "Send From" Priority
Released Date: 07/25/2021
Revised Date: 08/19/2021
Version: 8.6 & Up
8.6 Email Servers' Settings Decoupled from Prior Version
Even though users can use 8.6 with prior versions side by side, the changes with email servers' settings are significant enough that 8.6 cannot share the same registry configuration settings. Therefore, when users start up Elliott 8.6 for the first time, a pop-up message will show that the prior version’s email server settings are copied to 8.6. From that point, the changes users make in 8.6 are decoupled from the prior version. See sample screen below:
The 8.6 specific email server setting is saved in the registry node SMTP3Servers while prior versions are saved in Configuration. See sample screen below:
Background for Adding the Third Server
Elliott 8.6 now supports a third email server for each user:
- The default email server
- User-specific email server 1
- User-specific email server 2
Currently, many people are moving away from in-house hosted email servers and use third party servers instead (like the Microsoft-hosted email service, Outlook 365). While this trend has a lot of benefits for IT by reducing internal costs and increasing reliability, it also creates some challenges. First, most hosted email servers throttle email sending and do not work well with mass emailing. Second, most of them do not allow "send as" emails to be different from "authenticated" emails by default. The restriction is because third party email hosting providers try to protect their email server reputation from becoming a spamming server.
Generally speaking, the “default email server” option does not work well when your email server is hosted outside . It is difficult to authenticate with one single email account that serves all your Elliott users. Hosted email servers generally do not support email relaying. Therefore, it is likely you will use a “user-specific email server” option so each user authenticates differently with the email server. We still keep the "default email server" because this option allows you to get SMTP emails to work easily if you host your own email server (e.g., Microsoft Exchange.)
Starting with Elliott 8.6, we support an additional user-specific email server. The intention is that one will be used to authenticate with a reliable email server (like Microsoft) to send your regular emails, and the other one could be used to for mass emailing through something like SendGrid. Another possibility is to use one to configure the "send from" as a user's regular email address, and the other as a no-reply email address for automated/mass emailing purposes.
A Microsoft-hosted email server can be a reliable solution, but it restricts you, for example, from sending more than 30 emails per minute. This makes it difficult to use Microsoft email servers for automated/mass emailing purposes. To avoid this throttling requirement, Elliott 8.6 now allows you to set a delay time (like 2 seconds) per email server so you can still use it for automated/mass emailing by waiting a little bit between emails.
On the other hand, if you need to send thousands of marketing emails, the 30-emails-per-minute limit is not a desirable situation. In that case, you may want to use an email server like SendGrid, which does not have a throttling limitation. However, non-throttling servers may have a lesser reputation and some of your emails may go to recipients’ junk mail folders. While that may be okay for mass marketing, for PDF PostOffice documents like invoices, that’s not acceptable. In Elliott 8.6, you can now precisely control the type of email server to use according to the different types of email.
Using Multiple Email Servers
Selecting Your Default Email Server
Initially, each user will be assigned the default email server set up by the system administrator. It will be used for all Elliott email functionality. To view or change a user's email servers and settings, click the Setup icon on the Control Center menu task bar. This brings up the Setup/Preferences dialog:
On the Misc. tab, click on Email Settings... to bring up the Email Preferences dialog:
Here, the user first selects one of the three possible servers to be the primary email host, where most Elliott email will be sent -- all emails except Mass Email, PDF PostOffice and Event processing. In the screen above, the default server (as specified by your administrator) is selected. To see its properties, click the Properties... button (in red above):
In this example, most of the values are disabled because they are the settings that apply to all users that select the default server.
Alternate SMTP Servers
You may want to select an alternate server for most or all of your Elliott emails. To do so, on the Email Preferences dialog, select Alternate SMTP Server #1 or Alternate SMTP Server #2 and press its Properties... button:
The SMTP Server Settings dialog will appear:
The server properties for Alternate SMTP Server #1 and #2 only apply to you, so you can change any of the properties without affecting other users.
Selecting Multiple SMTP Servers
You have the ability to select different servers for different purposes. For example, you may want to use one server for normal email, another for mass email and yet another for PDF PostOffice. You can use the Email Preferences dialog for that:- Normal Elliott email will be sent to Alternate SMTP Server #1 (second red box).
- Mass Email will be sent to the Default SMTP Server (first red box).
- PDF PostOffice email will be sent to Alternate SMTP Server #2 (third red box).
- Note that Event processing email will be sent to Alternate SMTP Server #1 (second red box), because it is not assigned to another server.
Universal Throttling
On the SMTP Server Properties dialog, there is an opportunity to specify a delay between each email from you to that server:
So, in this case, there is a throttle that limits the number of emails per minute to 30 (60 seconds per minute divided by 2 seconds per email).
But what if you were running multiple Elliott processes and each was sending out email? Elliott employs a concept called Universal Throttling that makes sure that running multiple processes will not swamp the limits of your servers. For example, if you were running Mass Email in one process and doing normal Elliott processing in another process, email from both processes would be funneled through a single throttle to ensure the server's limits were not exceeded.
Note: This throttle works on a single machine -- if you are running Elliott on more than one machine, each machine will throttle independently. So, if you need throttling for your email server, you should not run simultaneous processes that could generate lots of emails on different machines from the same email address to the same email server.
"Send From" Improvements
If your email server is hosted outside (e.g., Microsoft Outlook 365,) then you may encounter a SendAsDeniedException. See sample message below:
In the above example, the email account is for "emk@netcellent.com." The Send From email address is "no-reply@netcellent.com." You must specifically configure your Outlook 365 settings to allow user "emk@netcellent.com" to send as "no-reply@netcellent.com." Otherwise, you may get "a SendAsDeniedException." The reason is that Microsoft Outlook 365 is trying to protect their email reputation to prevent them from becoming a spam email server. By default, your "send from" email should be the same as the authenticated email.
An Example in Resolving SendAsDeniedException with Microsoft Outlook 365
You will need to work with your email provider to address the SendAsDeniedException. The following is an example of configuring Outlook 365 to allow emk@netcellent.com to send as no-reply@netcellent.com. First, we create a no-reply distribution group like the following:
Then we click on the "Manage more settings in the Exchange admin center" to bring up the "Edit Distribution List" function.
We choose "Group Delegation" and add "emk@netcellent.com" to the "Send As." You can decide whether you want someone to monitor the "no-reply@netcellent.com" email address by adding that person as a member of this distribution group. There are other methods like "Shared Mailboxes" that achieve the same result.
Elliott 8.6 Improves "Send From" Consistency
Elliott 8.6 is now making the Send From function behave consistently, thereby reducing your chances of receiving such an error.
"Send From" Priority
In Elliott 8.6, the Send From can be determined in the following areas:
- EL860CF.EXE Configuration
- User Password Setup
- User Specific Email Server Configuration
- PDF Send From Email Address per Global Setup (if you are using PDF PostOffice)
- Override on Case-by-Case Basis
Areas Can Determine Send From | Can Specify Authentication Email Account | May Cause SendAsDeniedException |
1. EL860CF.EXE Configuration | Yes | No |
2. User Password Setup | No | Yes |
3. User Specific Email Server Configuration | Yes (Ideal method) | No |
4. PDF Send From per Global Setup | No | Yes |
5. Override on Case-by-Case Basis | No | Yes |
If you choose to override from an email address in 2, 4 & 5, but there's no option to authenticate that email address in 2, 4 & 5, there's a danger that the from email address would be inconsistent with the authentication email address, increasing the potential for a SendAsDeniedException. Of course, if you host your own email server, then this probably is not an issue. We are not suggesting that you host your own email server. As a matter of fact, we think the benefits of letting a third party host your email servers are enormous. You just need to be aware of the complexity when you have a third party hosting your email server.
1. EL860CF.EXE Configuration - This is the Elliott configuration utility that updates the <ElliottRoot>\Bin86\EL860.CFG file. It contains license information, default email servers, and "send from" information...etc. See sample screen below:
This utility provides a default email authentication account and a "send from" email address. If you host your own email server, you could allow this authentication account to send as any email address in your organization. This would be a easy solution to get your SMTP server set up. On the other hand, if you use third party email servers in the cloud, this is probably not enough.
2. User Password Setup - In User Password Setup, you can define the email address for each user. See sample screen below:
When user WNH logs in to Elliott, the email address "wnh@netcellent.com" will override the email address in number 1 "emk@netcellent.com." If user "emk@netcellent.com" will not be able to send as "wnh@netcellent.com" per the email server setup, then a SendAsDeniedException will happen.
3. User-Specific Email Server Configuration - In the Elliott Control Center, if you click on the "Setup" icon, choose the "Misc." tab, then click on the "Email Settings..." button and click on the "Properties" button for one of the three servers, you will see something like the following:
As you can see, in the above example, the email account is authenticated as "emk@netcellent.com." But the "send from" is "accounting@netcellent.com," which is different. This is okay as long as you configure your server to allow it. You can choose "Test email..." to make sure this will work. Once you confirm that this is working properly, this is the most reliable method to get SMTP email to work.
4. PDF PostOffice Send From Per Global Setup - In Global Setup -> System -> PDF PostOffice, users can set up the PDF Default From Email Address. This will override the Send From Email address in number 3 above while sending PDF PostOffice emails. So you need to make sure that this email address can be used as the Send From by all users who may use PDF PostOffice. See sample screen below:
5. Override on Case-by-Case Basis - In many areas where users can send emails in Elliott, users may have the option to override the default "send from." If you leave it blank, then system will use number 1 - number 4 above to determine the "send from." The following is an example of the print option window email tab:
In this example, the "From" is greyed out and shows "emk@netcellent.com." This implies this is the default "send from" is based on the setup in numbers 1 - 4 above. On the other hand, you can override this default by going to the "From" field and entering a specific email address. In that case, the From will show regular text instead of the greyed-out default.
The same principle applies everywhere email can be sent with an SMTP server (regular Elliott email, PDF PostOffice email, Mass Email, Global eContacts, Event Processing, Report Desk, etc.).
JEG, EMK