.NET Tips and Tricks

Blog archive

Guru Tip: Sending an Email in Office 365

What I don't know about SharePoint and Office 365 is what keeps companies like Add-In Express in business. So, when, I couldn't figure out how to send an email in Office 365, I asked Andrei Smolin, a team leader at Add-In Express.

In Office 365, there's no direct way to send an email programmatically because the SPUtility.SendEmail Method isn't available in sandboxed solutions. The workaround is to use the Send an Email action in a list workflow. First, you need to create a custom list:

  1. In the Navigation pane, click Lists and Libraries
  2. On the Lists and Libraries tab, click Custom List in the New group. In the resulting dialog, enter a name and description for the list
  3. Click OK

The list should contain at least three text columns: one to store each of the email's address, subject and body. Then, create a list workflow bound to the list:

  1. Click on the File menu and select Add Item
  2. Under the Workflows tab, select List Workflow
  3. Enter a name for your workflow and select your list from the dropdown list

Add a step to the workflow that performs theSend an Email action. When setting up this action, define the email message so that it looks up the values from the columns of the current item. You can also consider adding a second step to the workflow to delete the item just processed.

At this point, you have a list and a workflow tied to it. Now, adding an item to the list will cause your workflow to send an email. You may choose to just let your user trigger sending an email by adding items to that list through the SharePoint user interface. However, you can also add an item to the list from code to trigger sending an email. Assuming your list is called SendMail and has columns called Subject, To, and Message, that's what this code fragment shows:

using Microsoft.SharePoint; 
... 
SPWeb mySite = SPContext.Current.Web; 
SPListItemCollection  listItems = mySite.Lists["SendMail"].Items; 
SPListItem item =  listItems.Add(); 
item["Subject"] =  "subject"; 
item["To"] =  "[email protected]"; 
item["Message"] =  "message"; 
item.Update(); 

Posted by Peter Vogel on 04/12/2012


comments powered by Disqus

Featured

Subscribe on YouTube