Saving Licensing Cost for Exchange Online by Splitting User Accounts

Using a cloud-based service provider like Microsoft Exchange Online or Google's GSuite has recently become very popular because it is easy to implement. Many organizations create email accounts for every employee, increasing the subscription cost for these email services. Moreover, Microsoft rarely offers volume discounts. This article discusses a technique allowing organizations to save money on email subscription services.

There are two types of employees in most organizations: permanent and temporary, which include contractors and interns. Let's take a hypothetical scenario where a company has 500 permanent and 1000 temporary employees. Creating 1,500 accounts for Microsoft Exchange Online at $8/user/month adds up to $144,000/year for licensing costs.

Additionally, the list of temporary employees constantly changes. New contractors either join the company or leave once the project is over. The same goes for interns.

Separating Permanent From Temporary Employees

Besides emails, an account for Office 365 allows using packages like MS Word, Excel, Outlook, and other software offered by Microsoft. Therefore, letting the permanent employees consume a subscription license makes sense. On the other hand, it is overkill to consume 1000 licenses on temporary employees, who may only need an email account for a few months.

By splitting the users, this company would reduce its subscription cost from $144,000/year to $48,000/year, a 67% savings.

How To Split Users

You will need another email server, such as Xeams, to split users. The idea is to let emails for temporary employees handle by Xeams while messages for permanent employees go through Exchange Online. For this example, we will be using the Community Edition of Xeams.

There are two ways to configure Xeams. Both methods use features in Xeams that help manage the email flow.

Method 1 - Routing every email through Xeams

Here are the prerequisite and steps:

  • You will need to run Xeams in Hybrid Mode. This ensures that the user repositories exist in Exchange Online and Xeams.
  • Additionally, you will have to configure the MX record for your domain so Xeams gets every email. You may want to run Xeams in a clustered environment for high availability.
  • You create 1,500 user accounts in Xeams. Accounts for temporary employees will be designated as "Strict Local", indicating that Xeams will not transfer emails for these users to Exchange Online.

The following diagram shows the actual email flow.

Xeams receive every incoming email. Emails for permanent employees are delivered to Exchange Online, and emails for temporary employees remain at Xeams. Temporary employees connect their MS Outlook to Xeams, but permanent employees connect to Exchange Online to fetch messages.

This is the preferred method. We will discuss the reasoning later on.

Method 2 - Split the MX

Here are the prerequisite and steps:

  • Xeams will be configured to run in Stand Alone mode.
  • You create two MX records with different priorities:
    • MX Priority 10 - goes to Xeams
    • MX Priority 20 - goes of Exchange Online
  • Xeams has a unique feature that returns a temporary failure for non-existing users. This feature is turned on by adding:
    send.temp.reject.for.invalid.users=true
    in server.properties file. Refer to this page for details.

The following diagram shows the actual email flow.

Every email is initially sent to Xeams. However, since permanent employees do not have an account, a temporary failure will prompt the sender's SMTP server to retry sending their email to a lower priority MX, which will accept the email. Similar to Method 1, temporary employees will fetch their emails from Xeams.

Why Is Method 1 a Better Choice

Because it is foolproof. Although Method 2 will work in most cases, it depends upon the sender?s ability to send the message again to the lower priority MX. Additionally, this could cause some delays in the actual message delivery, which also depends on the sender?s configuration.

Summary

Regardless of the implementation method, companies could save thousands of dollars yearly by splitting their users into multiple categories and letting a more cost-effective email server, such as Xeams, handle emails for non-essential or temporary employees.