Могу ли я легко добавить функцию «отправить другу» или «отправить это по электронной почте» в список SharePoint? - PullRequest
0 голосов
/ 16 июля 2009

Мы хотим, чтобы пользователи могли легко отправлять контент (например, документ Word) с внутреннего сайта SharePoint кому-то еще, аналогично функции «отправить другу», которую вы видите везде, но фактически отправляете контент , а не просто ссылка.

Это легко достижимо с помощью SharePoint?

Ответ "Нет" от кого-то уважаемого является приемлемым ответом.

Ответы [ 2 ]

1 голос
/ 17 июля 2009

Мой брандмауэр блокирует ссылку kusek, но я уверен, что это то, что нужно. По случайному совпадению я только что разработал это вчера, поэтому могу поделиться основными моментами.

Файл функции

Эта функция настраиваемого действия добавляет пункт меню ко всем библиотекам документов. Настройте тип содержимого, если необходимо ограничить это только определенными документами.

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <CustomAction
        Id="OpenInMailClient"
        RegistrationType="ContentType"
        RegistrationId="0x0101"
        Location="EditControlBlock"
        Sequence="500"
        ImageUrl="/_layouts/images/iceml.gif"
        Title="Send As Attachment">
        <UrlAction Url="~site/_layouts/Custom/SendMail.aspx?ItemId={ItemId}&amp;ListId={ListId}" />
    </CustomAction>
</Elements>

Страница приложения

Я разработал страницу приложения, используя превосходную ссылку Карин Бош о элементах управления SharePoint , чтобы спроектировать и создать страницу приложения, чтобы она выглядела красиво и «SharePointy». Я также использовал поле расширенного HTML, чтобы пользователь мог вводить в текст расширенный текст, который, кажется, работает хорошо.

Отправка сообщения

Это довольно стандартный .NET. Единственная полуторная вещь - это использование сервера исходящей почты, установленного в SharePoint, для отправки сообщения. Обратите внимание, что в SharePoint API есть способ отправки почты, но он, похоже, не поддерживает вложения, и я не вижу преимущества его использования.

// Prepare message
MailMessage message = new MailMessage
    {
        Subject = txtSubject.Text,
        Body = txtBody.Text,
        IsBodyHtml = true,
        From = new MailAddress(txtFromAddress.Text)
    };
message.To.Add(txtToAddress.Text);
if (!String.IsNullOrEmpty(txtCCAddress.Text))
    message.CC.Add(txtCCAddress.Text);
message.Bcc.Add(txtBCCAddress.Text);

// Prepare attachment
Stream stream = chosenItem.File.OpenBinaryStream();
Attachment attachment = new Attachment(stream, chosenItem.Name, "application/octet-stream");
message.Attachments.Add(attachment);

// Send message
string server = SPContext.Current.Site.WebApplication.OutboundMailServiceInstance.Server.Address;
SmtpClient client = new SmtpClient(server);
client.Send(message);

// Clean up
stream.Dispose();
attachment.Dispose();
message.Dispose();
1 голос
/ 17 июля 2009

Вы можете сделать это с помощью пользовательских действий и страницы макета. Обратитесь к этой ссылке для получения дополнительной информации. Форматирование в ссылке неопрятно, но это тот метод, которому вы должны следовать. Еще одна вещь, которую вам, возможно, понадобится сделать, это каким-то образом отделить идентификатор электронной почты, чтобы отправить в вышеприведенной статье, что они получают письмо от пользователя. Вам может потребоваться отправить этот параметр, а также параметр строки запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...