Imagine this scenario. You have a SharePoint 2007/2010/2013 server in your environment along with an Exchange 2007/2010/2013 server. You have configured email-enabled lists in your SharePoint environment by leveraging an SMTP server configured on your SharePoint server along with a send connector on your Exchange server. Everything works great and people can email an address and have their content automatically added as a SharePoint list entry.
Then you migrate to Office 365 in a full cutover migration, obsoleting your Exchange on premises server. Your email to list functionality breaks. What now?
I found myself in this exact situation and had to come up with a solution. Here is what I came up with. I won’t be covering every step here and instead will only consider high level requirements. If you need more specific detail, please ask in the comments.
First, if you have performed a cut over migration, you likely don’t need the firewall rule you had for port 25 to your Exchange server anymore. So the first thing to do would be to modify that firewall rule and redirect traffic for it from your Exchange server to your SharePoint server.
From there, you can do the following:
1) Modify your existing Exchange contact that is used for email to list functionality. Change the email address from [name]@sharepoint.domain.com to [name]@domain.com where domain.com matches your primary production domain.
Next, if you are using some type of Directory Synchronization tool, perform a sync to Office 365.
2) On your SharePoint server, open Central Administration and browse to Incoming Email Settings
3) Configure the settings as shown below with the email server display address set to mylist@ domain.com where domain.com is your primary email domain.
4) As Office 365 may be sending from different server names, for testing purposes leave it set to Accept mail from all e-mail servers
5) On your SharePoint server, open the IIS 6 Management Console and edit the SMTP settings
6) Change the domain name to match your primary email domain
7) If you have added any restrictions on who can send email, please remove them during the testing phase
8) Log into your Office 365 account as a global administrator and select Exchange / Mail Flow / Connectors
9) Create a new connector that applies only when a Transport rule applies and configure it to use a smarthost that points at the external hostname/IP of your SharePoint server that is listening on port 25
10) Go to Rules and create a new rule where the recipient is the email address you configured above and set it to use the connector you created above
Note: The rule in question is configured like that shown below:
Apply this rule if: The recipient is… Set to your email contact that matches the one configured in your SharePoint list
Do the following: Use the following connector: (Found under Redirect the Message To) Use the connector you configured above that points to the public IP where port 25 of IIS is listening on the SharePoint server)
11) On your SharePoint list you wish to mail enable, go to Settings / Incoming Email Settings and confirm that the email address matches the one you configured above.
As these messages will be coming from an external source, for testing purposes you can try setting Accept e-mail messages from any sender
That should do it. You can test this by sending an email to the address you configured from Outlook. It should do the following:
Outlook On-Prem -> Office 365 –> Transport Rule –> Outbound Connector to SharePoint -> SharePoint SMTP Server -> mailroot\Drop Folder -> SharePoint timer job picks up the message and places it in the list configured with a matching email address.