Table of Contents
Mass mailings are mail messages addressed to a large number of users. It could be your quarterly employee newsletter sent out to all employees or a sales flyer to all customers. In any case, it is a message with a large recipient list that can affect normal mail delivery on your server.
The Mass Mailing Problem
When the Domino server routes mail, for the most part, it works in a “first in first out” basis. It is also a multi-threaded process that is able to send multiple mail messages at any given time. When a large mail message is received, the router task of the Domino server will use as many threads as it can to deliver the message. This can be a good thing in that Domino will get the message sent to all of the recipients as quickly as possible; but in the process, it may appear as the router is “hung”. In this case, you see the router task taking CPU and memory, and all new mail will stay in the mail.box file(s) while the router completes its work on the message. If the message has a large number of recipients, users may see a slow down when accessing the server. This happens while the router is parsing the list of recipients and determining which messages should be delivered locally. This step is commonly referred to as the “name lookup” step and involves briefly locking the $users view in the Domino directory (names.nsf). Since the $users view is also required for user authentication to the server, these lookups can cause a brief delay for the end user.
The Mass Mailing Solution
Optimizing the performance of mass mailings on your server can be achieved in a number of ways. That is because there are many factors that determine the impact of sending the message. This includes the group size, how the recipients are specified, how the message is sent, who can access the group and router configuration.
Using Sub Groups
One simple way is to break up very large group into multiple subgroubs. For example, at Fictional Software Company A, they send monthly technical tips to all of their customers. They have created a group called Product B Customers
. In this group they have multiple subgroups listed Product B Customers A-K, Product B Customers L-Q and Product B Customers R-Z. Sending a message to the group containing multiple subgroups will be more efficient than sending a message to one large group. This is because of the way the router must parse each message as it prepares to send the message to each user. Even better would be to send a message to each subgroup, but most users will reject this idea as it requires more work on their part.
Properly Using Mail Addressing
Are your mass mailings sent to a group listed in the to, cc or bcc field? The router task must process a message differently if a large group is specified in the to or cc field versus the bcc field. When processing a bcc list, the router makes a unique copy of the message for each recipient. That is very intensive work. You can reduce this overhead by using the to or cc field when appropriate or set Disable_BCC_group_expansion=1. By setting Disable_BCC_group_expansion, you are preventing this unique copy process from occurring. However, as a result, the users will no longer see their name or e-mail address listed in the to, cc, or bcc field when they receive the message. For additional information on the Disable_BCC_group_expansion notes.ini parameter refer to technote 1089346
Using Low Priority
Another option when sending mass mailings is to avoid using your production mail server or avoid sending mass mailings during primary business hours. If you use a specific account for your large distributions, selecting your administration server as the mail server for that account would be a simple solution to avoid causing problems for your users. However; if you only have one server or many users that must send mass mailings, then an alternate solution would be to force users to send mass mails as low priority messages and therefore to be delivered off hours.
How do you set a message to be sent as low priority? This is done when composing the message and selecting Delivery Options…
. From there the user can set the Delivery priority
as shown in figure 1.
To force your mass mails to deliver during off-hours, you need to take two actions – (1) Define times for low priority mail routing and (2) configure a rule to only allow mass mailings to be accepted for delivery if they are sent as low priority by the user. By default the Low priority mail routing time range
is from 12:00 AM – 6:00 AM. You can change this range to be the best times for your environment in the configuration document, Router/SMTP
→ Restrictions and Controls…
→ Transfer Controls
tab as shown in figure 2.
Be sure that if you take down your server each evening for backups that it does not conflict with your routing time. You should also be sure that you have not disabled the message priority functionality on your server. The Ignore message priority
setting is found in the configuration document, Router/SMTP
tab as seen in figure 3.
The next step is to configure a server based mail rule to define what should be considered a mass mailing and thus be sent as low priority. A server based mail rule will affect all mail going in and out of the Domino server so be aware that if you set the value to low you could reject inbound mail directed to a large number of users. In the example seen in figure 4, any message addressed to more than 50 recipients that is not a low priority message will be rejected. The user will receive a Delivery Failure Report stating that the message was rejected for policy reasons.
Limiting Access to Group Documents
Limiting access to group documents can also be an effective way of limiting which users in your organization can send mass mailings. A readers list can be placed on any document stored in a Domino database, including group documents. To create a reader’s list on a document, right click on the document and select Document Properties
. On the security tab, remove the check next to All readers and above
. Now only the users or groups with a check next to their name in the list as shown in figure 5 will be able to access the document. It is critical that when you use a readers list that you check the LocalDomainServers group in order to allow the group and group changes to replicate throughout your Domain. It is also recommended to also include the LocalDomainAdmins group. There is no “undo” when it comes to a readers list. If you lock the document down and the only person able to access the document leaves the company, there will be no way to unlock or see the document. Thus, it is important to protect yourself by selecting the LocalDomainAdmins or other group as appropriate in the readers list.
In the case of a group document, if a user is not part of the readers list, then the user will not be allowed to send a message to the group from the Lotus Notes or iNotes clients. If an unauthorized user attempts to send a message using a POP or IMAP client, they will receive a non-delivery report with the error “Not authorized to send mail to this user or group”.
There are a number of NOTES.INI parameters that can be used to further tune your Domino server and prevent server problems with mass mailings. This includes RouterMaxConcurrentDeliverySize, RouterMaxEffectiveSize and RouterMaxEffectiveSizeIncAttach.
allows the router to open only one copy of a message at a time if it is greater than the specified size in bytes. This setting provides a performance improvement for messages with large attachments sent to multiple users. Users may notice a slight delay for a message with a large attachment to reach all recipients, but message will be delivered. The proper size for this parameter varies depending on your environment. Many customers find a starting value of 1048576 (1 megabyte) to be helpful.
sends a delivery failure notification to a user if the message they are trying to send is greater than the effective message size, specified in kilobytes. The Effective size of the message is calculated by taking the size of the message times the total number of recipients (effective size = message size in kilobytes * number of recipients). Note that the message size used in this calculation does not include attachments unless RouterMaxEffectiveSizeIncAttach
How you set this value depends on whether or not you want to include attachments in your calculations. RouterMaxEffectiveSize is similar to the “Maximum message size” parameter that can be configured in a configuration settings document (figure 6) or a rule configured based on size (figure 7). The difference is that when using the “Maximum message size” or a server based mail rule the recipient count is not considered.
Transferring the Work Out of the Router Task
One final possibility for dealing with mass mailings is to find a way to transfer the work away from the router task and into another task. You could do this by developing an agent to sent the distribution. The agent could break up the message sending to groups of small users, queue the message for delivery at a later time or use any of the other strategies discussed in this article. There are also a number of 3rd party tools that will manage and create large mailings without impacting server performance.
In summary you have seen a number of ways you can manage mass mailings in your Domino environment. Some options involve user training and others are transparent to your users. Now that you understand the many options available to you, you can determine which set of options are the right choice for your business.