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:
- In the Navigation pane, click Lists and Libraries
- 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
- 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:
- Click on the File menu and select Add Item
- Under the Workflows tab, select List Workflow
- 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 at 1:16 PM