Лучший отвечающий
SharePoint EventReceiver: Отправить вложение элемента списка почтой?

Вопрос
-
Здравствуйте.
Есть настраиваемый список, в элементах которого могут быть вложения (.docx)Мне нужно из кода eventReceiver(а), который срабатывает на обновление элемента, получить вложение из элемента списка и отправить его почтой.
Как отправить просто файл вложением в письмо, сказано тут: https://metanit.com/sharp/net/8.1.php
но мне нужно отправить его из элемента списка.Подскажите, как это можно сделать?
13 октября 2020 г. 7:44
Ответы
-
public void SendEmail(string subject, string body, string sender, string attachmenturl) { var fromAddress = new MailAddress("Sharepoint@yourmail.ru", "SharePoint server response"); var toAddress = new MailAddress(sender, "To Name"); var smtp = new SmtpClient { Host = "yourmail.ru", Port = 25, EnableSsl = false }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { Attachment data = new Attachment(attachmenturl, MediaTypeNames.Application.Octet); ContentDisposition disposition = data.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(attachmenturl); disposition.ModificationDate = System.IO.File.GetLastWriteTime(attachmenturl); disposition.ReadDate = System.IO.File.GetLastAccessTime(attachmenturl); message.Attachments.Add(data); smtp.Send(message); } } public override void ItemAdded(SPItemEventProperties properties) { try { using (SPWeb web = properties.OpenWeb()) { string subject; string body; string sender = "postmaster@yourmail.ru"; SPListItem currentItem = properties.ListItem; string attachment = Uri.EscapeUriString(currentItem.Attachments.UrlPrefix + currentItem.Attachments[0]); var client = new WebClient(); client.UseDefaultCredentials = true; client.Credentials = CredentialCache.DefaultCredentials; string attachmenturl = @"C:\Temp\" + currentItem.Attachments[0]; client.DownloadFile(attachment, attachmenturl); subject = "Name: " + currentItem.Name.ToString(); body = "Body"; SendEmail(subject, body, sender, attachmenturl); } } catch (Exception ex) { throw ex; } }
- Предложено в качестве ответа bydebtrelief 18 октября 2020 г. 15:47
- Отменено предложение в качестве ответа bydebtrelief 18 октября 2020 г. 15:47
- Предложено в качестве ответа Lion SP 20 октября 2020 г. 6:59
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 26 октября 2020 г. 19:32
16 октября 2020 г. 14:57
Все ответы
-
public void SendEmail(string subject, string body, string sender, string attachmenturl) { var fromAddress = new MailAddress("Sharepoint@yourmail.ru", "SharePoint server response"); var toAddress = new MailAddress(sender, "To Name"); var smtp = new SmtpClient { Host = "yourmail.ru", Port = 25, EnableSsl = false }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { Attachment data = new Attachment(attachmenturl, MediaTypeNames.Application.Octet); ContentDisposition disposition = data.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(attachmenturl); disposition.ModificationDate = System.IO.File.GetLastWriteTime(attachmenturl); disposition.ReadDate = System.IO.File.GetLastAccessTime(attachmenturl); message.Attachments.Add(data); smtp.Send(message); } } public override void ItemAdded(SPItemEventProperties properties) { try { using (SPWeb web = properties.OpenWeb()) { string subject; string body; string sender = "postmaster@yourmail.ru"; SPListItem currentItem = properties.ListItem; string attachment = Uri.EscapeUriString(currentItem.Attachments.UrlPrefix + currentItem.Attachments[0]); var client = new WebClient(); client.UseDefaultCredentials = true; client.Credentials = CredentialCache.DefaultCredentials; string attachmenturl = @"C:\Temp\" + currentItem.Attachments[0]; client.DownloadFile(attachment, attachmenturl); subject = "Name: " + currentItem.Name.ToString(); body = "Body"; SendEmail(subject, body, sender, attachmenturl); } } catch (Exception ex) { throw ex; } }
- Предложено в качестве ответа bydebtrelief 18 октября 2020 г. 15:47
- Отменено предложение в качестве ответа bydebtrelief 18 октября 2020 г. 15:47
- Предложено в качестве ответа Lion SP 20 октября 2020 г. 6:59
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 26 октября 2020 г. 19:32
16 октября 2020 г. 14:57 -
Спасибо VARD32!
У меня был такой же вопрос.
Сейчас я разобрался с этим,
18 октября 2020 г. 15:51 -
Спасибо, пример рабочий, класс 👍20 октября 2020 г. 6:59