Jun 1, 2017

Get images from SharePoint Image library and attach them to email message using CSOM

Hello everybody,

Today lets try getting images from a Sharepoint image library and attach them to Mail message using CSOM.

My below code does the job. 

 public static MailMessage GetConfigurationImages(ClientContext context, System.Net.Mail.Attachment MailAttachment, Microsoft.SharePoint.Client.File file, MailMessage message, String imageName)
        {

            Logger.Info("Getting Configuration Images");
            var docs = context.Web.Lists.GetByTitle("ConfigurationImages");
            var qry = CamlQuery.CreateAllItemsQuery();

            var srcItems = docs.GetItems(qry);
            context.Load(srcItems, icol => icol.Include(i => i.FileSystemObjectType, i => i["FileRef"], i => i.File));
            context.Load(docs, l => l.RootFolder);
            context.ExecuteQuery();
            foreach (var item in srcItems)
            {
                file = item.File;
                var fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(context, file.ServerRelativeUrl);
                var fileStream = fileInfo.Stream;
                MailAttachment = new System.Net.Mail.Attachment(fileStream, MediaTypeNames.Application.Octet);
                MailAttachment.Name = file.Name;
                MailAttachment.ContentId = file.Name;
                if (file.Name != imageName)
                { message.Attachments.Add(MailAttachment); }

            }
            return message;

Thanks. 

No comments: