Microsoft.SharePoint.MailMessage недоступен из-за уровня защиты - PullRequest
0 голосов
/ 14 сентября 2010

«Microsoft.SharePoint.MailMessage» недоступен из-за уровня защиты

По этому коду:

MailMessage mail = new MailMessage();
mail.From = "myemail@xxxxx.edu";
mail.To = "myemail@xxxx.edu";
mail.Subject = "Testing Code";
mail.BodyText = what;
mail.Priority = MailPriority.High;
Smtp.Send(mail, "smtp.xxxxx.edu");

Как это можно исправить? изменения в web.config? Любой способ обойти в коде?

1 Ответ

2 голосов
/ 15 сентября 2010

Эта ошибка говорит о том, что у MailMessage нет открытого конструктора. Скорее всего, это только для внутреннего использования SharePoint.

На самом деле, в большинстве случаев в SharePoint вам нужно использовать SPUtility.SendEmail метод для отправки почты с SharePoint. Это очень просто:

SPUtility.SendEmail(SPContext.Current.Web, false, false, "myemail@xxxxx.edu", "Testing Code", what);

См. MSDN для деталей об этом методе: http://msdn.microsoft.com/en-us/library/ms411989.aspx

Если вам нужно отправлять электронную почту под обычными учетными записями пользователей, вы должны использовать метод SPSecurity.RunWithElevatedPrivilegies для предоставления повышенных привилегий.

Единственным недостатком является то, что SPUtility не поддерживает вложения. Если вам нужно приложить некоторые файлы к вашему письму, пожалуйста, используйте System.Net.Mail .

Мне известен хороший пост от Эдвина Вриетоффа, в котором содержится подробная информация об отправке электронной почты с вложениями, с настройками SharePoint SMTP по умолчанию (они настраиваются через центр администрирования): http://edwin.vriethoff.net/2007/10/02/how-to-send-an-e-mail-with-attachment-from-sharepoint/

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