05 Mar

Set Up Incoming Emails to a SharePoint List

There are a handful of list types that can create a new item when it receives an email:

  • Document Library
  • Picture Library
  • Form Library
  • Announcements List
  • Calendar List
  • Discussion board
  • Blog

This can be very handy and perhaps more convenient for your users – for example, you can send meeting invites to a SharePoint calendar, post new announcements through email, or receive form submissions through email. Depending on your SharePoint environment, the configuration can be tricky to set up.

 

(1) First step is to install an SMTP server on the web front-end SharePoint server.

The process for this depends on your server environment; Microsoft provides some detailed steps on how to do that here. Next, if you don’t have it already, you should also install IIS 6.0 Management tools. You’re most likely running IIS 7 or 8, but it is much easier to configure the SMTP server from IIS 6 Manager interface.

Once its set up, you can open up the Properties window in IIS 6 Manager and configure the settings for your SMTP server for what works best for your environment.

Set up SMTP server

If you’re not sure which settings to use, here’s a basic example from MSDN blogs.

You can actually skip this step if you prefer to use an existing SMTP server that is not installed on your front-end server, as long as you properly configure the Drop folder in the following steps.

 

(2) Set the location and permissions to the Drop folder.

You can modify the location of the Drop folder for the default domain on the SMTP server. I’m leaving it as the default location on the front-end server.

Drop folder location

When an email (it appears as an EML file) arrives, it’s moved from the Pickup folder to the Drop folder where it waits for the SharePoint Timer Service to come and get it. You have to make sure that the account that the Timer Service logs on with can read, write, and modify the Drop folder.

 

You can check which account the SharePoint Timer Service uses from the Services pane:

Incoming-Emails-03

 

Then, check the access for that account to the Drop folder:

Farm Account access to the Drop Folder

 

(3) Configure incoming email settings in Central Administration.

Apparently, a recent update (mid to late 2013) requires that you manually set the location of the Drop folder in Central Administration instead of leaving SharePoint to use automatic settings. (Here‘s more info on this from an MSDN blog.)

In CA, go to System Settings, and click on Configure incoming e-mail settings.

Central Administration System Settings

 

Under Enable Incoming E-Mail, make sure that Yes is selected, then change the Settings mode to Advanced. That will change the bottom section to E-Mail Drop Folder. The recommended thing to do according to this thread is make a network share location to the Drop folder instead of pointing to the local C: drive – I don’t know if that matters in my case since the Timer Service is only going to run on the server where the Drop folder is located (see next section), but I did it anyway.

Incoming-Emails-06

 

(4) Check that the Incoming Email Service is only running on the front-end server with SMTP installed.

The Timer Service Recycle job runs periodically to make sure the SharePoint Timer Service didn’t get stuck, but apparently whenever it runs, it changes which server the Microsoft SharePoint Incoming Email job runs on. Also it apparently chooses arbitrarily that server so there’s no way to set it to the main server. (See this very useful explanation from this blogger.) So to eliminate any headache, I turned off the service on all the load-balancing servers and only left it running on the main front-end server.

To do this, go into Central Administration under System Settings > Manage services on server.

Central Administration System Settings

 

Then make sure Microsoft SharePoint Foundation Incoming E-mail is running (Started) on the main front-end server:

Front End Server Services

 

Switch to the other front-end servers, and make sure that service is Stopped on each server. Or click Stop under the Action column to do so.

Check if its stopped on the other servers

 

Then for good measure, I logged on to each front end server and restarted the SharePoint Timer service from the Services pane.

 

(5) Setting a Quota Limit in Central Administration.

So just to let you know that all the above steps are important, but I still couldn’t get it to actually work until I did this final step. By default (I think) there is no site storage quota set for the site collection, but this value must be set for the Incoming E-Mail Service to work.

 

Go into Central Administration > Application Management > Configure quotas and locks.

Central Administration Application Management

 

Under Site Quota Information, check the checkboxes to “Limit site storage” and “Send a warning email”, then set a realistic value (I put 120GB but of course you can always change that later). Of course make sure you’re looking at the settings for the correct Site Collection.

Quotas and Locks

 

After this, the EML files that had been hanging out in the Drop folder since Step 2 finally disappeared, and the events started showing up in the calendar. Hoorayy!!

 

(6) Configure an Alias Domain.

This part is completely optional. If you want to use a different domain name for the email addresses than the name of the front-end server, you can configure an alias domain. Once you’ve created a DNS entry for the alias domain, log on to the front-end server, open up IIS 6 Manager, and add the alias domain to the SMTP server.

Next, open up Central Administration, go to System Settings > Configure incoming e-mail settings.

Configure incoming email settings

 

Lastly, change the Incoming E-Mail Server Display Address to match the alias domain. Then click OK.

That’s all. To verify, you can go into a list that can receive email, open up its List Settings > Incoming e-mail settings. The alias domain should now show up under “E-mail address.”

 


More Information

Official Microsoft Info

Very Useful Threads and Blog Posts for Troubleshooting

Copyright © 2014 Keren Apura; Fruitful theme by fruitfulcode