Is it possible to send an Email from an Autohosted Sharepoint 2013 app from CSOM code (C#) with an attachment?

I have the following code:

 EmailProperties properties = new EmailProperties();
            properties.To = new string[] { "email@example.com" };
            properties.Subject = "Subject";
            properties.Body = "Body";

            Microsoft.SharePoint.Client.Utilities.Utility.SendEmail(clientContext, properties);


But how can I send an attachment together with the email?


This is not a direct answer to the question, I am describing how we have solved this issue.

Change your app to provider hosted so that you can handle remove event receivers (RERs) (other parts remain the same including your current pages (if any) of auto-hosted app). To send the mail, create an item in one list with information needed to prepare mail content. Configure an RER on this list on item creation and handle it in provider hosted component and there use a local SMTP server or some other mechanism to send mail. Use CSOM to get whatever data/attachments you need to send in the mail.

We are using Azure for provider hosted component and use SendGrid Azure App to send mail.

| improve this answer | |
  • I am also using SendGrid. But not able to get attachment say list item attachment into attachment property. Any thought on this. – Bhaskar Dhone Jun 9 '16 at 15:47

Depending on your needs, what you can do is add a Visual Studio Workflow to you App project and set it up to send e-mails. If the attachments you want to send out are located on the SharePoint site, a link to the document is more preferred than actually sending the document itself.

Include sp.workflowservices.js in your App and use it to retrieve the Workflow instance, populate it with info, and start it.

| improve this answer | |


SPUtility.SendEmail() with attachment (.ics files)

As the above suggests:

There is no possibility to send Attachments using this method. But you can use of SPAdministrationWebApplication to get the SMTP server details.

I'm not sure if SPAdministrationWebApplication is accessible in client object model.. Give it a try.. otherwise you might need to hard-code the email server address..

| improve this answer | |
  • 1
    Thank you. The provided code is the one I use for my on-premise Version. Unfortunately SPAdministrationWebApplication is not available in CSOM. Do you know another way to figure out the outgoing server? – AdelPoint Apr 28 '14 at 8:21
  • 2
    The question is asking specifically for CSOM code - this answer is incorrect given this context. – Ryan Shripat Sep 18 '14 at 14:15
  • As I mentioned in the answer, I wasn't sure if SPAdministrationWebApplication was accessible through CSOM.. So yes, it is incorrect in the given context.. But I would love if you could provide correct answer :) – Arsalan Adam Khatri Sep 18 '14 at 14:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.