CanIt works with Office 365 as it does with any SMTP mail service; MX records for the domain are pointed to CanIt, and filtered mail is directed to the Office 365 server by configuring routing using Setup->Domain Routing in Canit. This routing address is initially filled with the one that you give us upon requesting the domain. You simply need to provide the MX records that are given to you in the O365 admin portal. These usually look something like:
After the domain has been provisioned, there are a handful of extra steps that are required to get Office 365 to conform to the standards that we expect, as discussed below.
- 1 User Counts
- 2 Other Best Practices
One shortcoming of Office365 is that Microsoft doesn't provide external access to an Active Directory system and does not properly validate recipients via SMTP by default (this is the case for any Microsoft Exchange system). CanIt requires some method of recipient verification so that it doesn't end up accepting and billing for users that don't exist.
Manually defined aliases can be used to account for regular alias addresses, distribution groups, shared mailboxes and other situations where an address should not be treated as a unique user. This is discussed in depth here.
If you have access to the Office 365 management portal you should also be able to get valid recipient checks working correctly, allowing us to keep an up-to-date list of valid address automatically. This requires you to enable the Directory Based Edge Blocking (DBEB) feature. This is analogous to our Valid Recipient list, but will only then require you to keep the list current in one place. Instructions can be found here:
Note: You may already be using the "Authoritative" setting with a fully populated list, but you will likely still need to switch it off and back on unless you have done so before. It can also take some time for this setting to propagate to all of the Office 365 servers, so our tests will not necessarily pass for about half an hour.
If you have your own external AD/LDAP which Office 365 is connecting to we can also use that for recipient verification, making the need for a SMTP-based verification process unnecessary. This is done using Setup->User Lookups and must be defined for use with Setup->Domain Mappings. This has the additional benefit of being able to detect existing aliases and to support authentication, as below.
Valid Recipient Table
Without changing anything in Office 365, you can work around a missing external verification source from directly within CanIt by manually defining the list of possible recipients using Rules->Valid Recipients, and by enforcing the list with Preferences->Quarantine Settings->S-950. See Recipient Verification below another way to set up automated verification.
Other Best Practices
Disable filtering for CanIt IPs
Office 365 allows you to mark specific IPs as "Safe". Having Office 365 doing secondary filtering can cause problems and make messages hard to trace, so we recommend that you add us to this list as follows:
- Open the Exchange Admin Center
- Navigate to Protection->Connection Filter
- Click Edit->Connection Filtering->Add
- Include the IP addresses of all CanIt machines (for Hosted customers, these are available from the My Domains->My Domains page of our WebUI)
- Check "Enable Safe List" and Save
Restricting Inbound Connections to Those Originating From CanIt
Office 365 also allows you to restrict incoming connection from only select IP addresses so that no spam is able to bypass our filter. At the time of writing, this is done as follows:
- Open the Exchange Admin Center
- Navigate to Mail Flow->Connectors
- Click the Add icon
- Select the Mail Flow Scenario: From Partner Organization To Office 365, click Next
- Name the connector as you wish, click Next
- Select "Use the Sender's Domain" as the identification method, click Next
- Use the Add icon to define the domain: * (indicates that we are allowed to deliver mail from any sender), click Next
- Select "Reject email messages if they aren't sent from within this IP address range"
- Click the Add icon and then include the IP addresses of all CanIt machines (for Hosted customers, these are available from the My Domains->My Domains page of our WebUI)
- Click Next, then Save
If you do have an external AD/LDAP system, as discussed for Recipient Verification above, you can also use it for authentication by setting it up in Setup->Authentication Mappings.
Office 365 does provide a public POP3 and IMAP service which you should be able to use for authentication instead. This must also be set up using the the Setup->User Lookups wizard, then must be enabled from Setup->Authentication Mappings. Some clients have reported success with the following settings:
POP3: outlook.office365.com/995 IMAP: outlook.office365.com
If these settings don't work, or if you have any other concerns about this integration, you will need to contact Microsoft for more information.
Supporting SPF Checks
Office 365 checks for SPF results. As a result, any sender that has a valid SPF record will be flagged after it passes through us and has a possibility of being rejected since we are bound not to be included in those records.
For this reason, you must enable Sender Rewriting Scheme. In the default stream for your realm, go to Preferences : Quarantine Settings and set S-930 Enable SRS (Sender Rewriting Scheme) to Yes
This will allow us to re-write the sender address in such a way that the Office 365 will not flag the failed SPF checks. We also check for SPF records, so you will not lose any security as a result of this change.
Hosted CanIt offers outbound filtering support for Office 365 but as with all outbound filtering it needs to be requested on a per-domain basis, since it is a premium feature. This can be done with My Domains->Request Outbound Filtering by selecting Office 365 as the source. Once this is done, you need to set Hosted CanIt up as the outbound Connector using the information that is provided in the confirmation email that you will receive. As of the time of writing, this setting in Office 365 is located in the Exchange Admin Center under Mail Flow->Connectors.
For on-premise implementations, Outbound Filtering is not advised for Office 365 domains. It requires a significant level of setup and maintenance to allow only the desired relay connections from Microsoft's ever-changing list of IP's. We have site-specific automations and custom code to handle this on Hosted which cannot be easily transferred to on-premise appliances.