SharePoint document libraries can be email-enabled so that documents can be uploaded by simply sending an email. In single server, lab-type environments, this is relatively simple to achieve, but in multi-server production environment, particularly where Exchange is handling internet email, there's a lot more to consider.
Having Exchange handle the incoming email routing before the document reaches SharePoint has a number of advantages:
- Exchange will typically be set up to handle inbound threats far more robustly than SharePoint can be – while they can both scan documents for viruses, Exchange can also check against spam lists, blacklists and sender reputation before allowing mail through.
- Exchange can also apply various rules to mail messages before they are delivered – such as checking for attachments, attachment size, subject etc. – and then routing accordingly.
- Exchange can also auto-reply to messages – useful where a receipt or other response is required to the sender.
- Tracking messages through Exchange is far easier than looking through SMTP logs – useful for compliance and auditing purposes.
- Using Exchange, the message doesn't just have to be delivered to SharePoint – it can be also sent to a journal mailbox, or copied/forwarded to any other recipient or group.
- The email address given to users for the document library can be part of your internet address space, e.g. email@example.com, not firstname.lastname@example.org – this is beneficial when external users are involved in the document sending process (e.g. partners, suppliers) and internal users can find the address in the Exchange address book.
SharePoint can use the directory management feature to automatically create email addresses in the corporate directory when email-enabled document libraries are created. Designed to simplify the process for SharePoint, this can be a headache for Exchange administrators, particularly in large environments. The method below avoids having SharePoint create the entries automatically, introducing a manual process, but ensures that the SharePoint and Exchange support teams remain friends!
You want external partners to be able to email documents to an on-premises SharePoint document library, using an email address that routes through the on-premises Exchange organization.
High Level Overview
- SharePoint is installed as three tier farm with multiple web/front-end servers.
- Internet email is handled by Exchange
- An Exchange mailbox is set up to receive emails from partners with the address
- An email contact object is set up with the external address,
- The mailbox is setup to forward incoming emails to the contact
- An Exchange SMTP connector is used to route email for the sp.example.com namespace to the SharePoint frontend load balanced address.
- Exchange transport rules can be configured to process the mail further, e.g. send a receipt, change the destination address based on sender/subject etc.
- Exchange is set up to receive email from the internet using SMTP for the domain example.com
- No external DNS changes are required.
- The SMTP service has been installed on all the SharePoint web/front-end servers, set to automatic start-up, and load balanced with a virtual IP address and local DNS entry.
SharePoint Farm Set Up
To configure incoming email, complete the following steps:
Verify that the user account that is performing this procedure is a member of the Farm Administrators group.
Open SharePoint Central Administration.
Click on System Settings.
Select Configure incoming e-mail settings.
Select "Yes" to enable sites on this server to receive e-mail.
Leave the other settings as default – "Settings mode = automatic" and "Use the SharePoint Directory Management Service = no"
Ensure the E-mail server display address (excluding mylist@) is set to the SharePoint address space, e.g.
sp.example.com. This is only to make setup easier, you don't need to create any DNS settings for this as we'll be using the load balanced IP address of the frontend servers to route to this namespace.
SharePoint document library set up
- Create a new document library or email enable an existing library by opening the document library settings and selecting the "incoming e-mail settings"
- Select "Yes" to "Allow the library to receive email?"
- Enter an email address that is appropriate for the library – a suggested convention might be [libraryname].[sitename]@sp.example.com. This address will be used by the contact object in Exchange
- Configure attachment settings and email message settings as needed.
- As you'll be accepting messages from the internet, change the security policy to "Accept e-mail messages from any sender" – we're offloading message security to Exchange.
Exchange Set Up
- Create a contact object with the naming convention of the organization, using the document library email address as the external email address.
- Create a mailbox with the required external internet email address, e.g.
email@example.com and ensure it can receive from the internet. Set any properties needed on the mailbox (e.g. maximum size) and in the "Mail Flow" tab, select "delivery options". Configure the forwarding address to be the contact object you've just created.
- To route mail between Exchange and SharePoint, create a new "send connector" in the hub transport section of the organisation configuration.
- Enter an appropriate name (SharePoint) for the connector and choose a "custom" type.
- In the address space, enter your SharePoint address space, e.g. sp.example.com
- Select "Route mail through the following smart hosts" and click "Add"
- Enter the load-balanced IP address of the front end servers and complete the wizard.
When incoming email for
firstname.lastname@example.org arrives at the exchange server (either from the internet or from internal senders) it will be forwarded from the mailbox to the contact object, causing it to be routed through the new send connector to the one of the front-end servers in the load balancer, where the SMTP service will store it in the drop folder. SharePoint will monitor the drop folder, find the new email, and store any attachment in the document library – with the email message too, depending on the setting chosen.
Extending the Solution
This is a very simple example, but it's possible to meet a variety of business requirements by adding Exchange transport rules, SharePoint routing rules, and workflow into the solution. The major benefit if using the mailbox/contact forwarding method above is the email address given to partners doesn't change – simplifying collaboration. For example:
- Transport rules can be used to route email to different mailboxes (and then to different contacts) depending on different conditions, such as subject, sender or attachment type. Contacts can be created for each document library.
- Alternatively, SharePoint routing can be used to move the attachment from the drop-off library to different libraries, based on metadata in the attachment, approval status, or document type, keeping the Exchange side simple, and retaining the business logic in SharePoint.
- Further processing can be accomplished through custom workflows, triggered on item creation within the email-enabled document library. These may move the item straight away, trigger an approval process, or start another external process entirely.