由于其保护级别,“Microsoft.SharePoint.MailMessage”无法访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由于其保护级别,“Microsoft.SharePoint.MailMessage”无法访问相关的知识,希望对你有一定的参考价值。

由于其保护级别,“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?有没有办法绕过代码?

答案

此错误表明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

我知道来自Edwin Vriethoff的一篇好文章,它提供了有关发送带附件的电子邮件的详细信息,以及默认的SharePoint SMTP设置(它们是通过管理中心配置的):http://edwin.vriethoff.net/2007/10/02/how-to-send-an-e-mail-with-attachment-from-sharepoint/

以上是关于由于其保护级别,“Microsoft.SharePoint.MailMessage”无法访问的主要内容,如果未能解决你的问题,请参考以下文章

由于其保护级别,“Microsoft.SharePoint.MailMessage”无法访问

c# 资源中的 SmtpClient 由于其保护级别而无法访问

未序列化的结构列表列表。 System.RuntimeType 由于其保护级别而无法访问。只能处理公共类型

为啥我收到“由于保护级别而无法访问”错误?

'var_name'未声明。由于其保护级别,它可能无法访问。在调试模式下

“DefaultCatalog”未声明。它可能无法访问由于其保护级别。加上几个类似的错误