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

问题描述 投票:0回答:1

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

在这段代码上:

MailMessage mail = new MailMessage();
mail.From = "[email protected]";
mail.To = "[email protected]";
mail.Subject = "Testing Code";
mail.BodyText = what;
mail.Priority = MailPriority.High;
Smtp.Send(mail, "smtp.xxxxx.edu");

怎么可以搞砸这个?更改为web.config?有没有办法绕过代码?

sharepoint smtp message-level-security
1个回答
2
投票

此错误表明MailMessage没有公共构造函数。最有可能的是,它仅供内部SharePoint使用。

实际上,在SharePoint的大多数情况下,您需要使用SPUtility.SendEmail方法与SharePoint一起发送邮件。这很简单:

SPUtility.SendEmail(SPContext.Current.Web, false, false, "[email protected]", "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/

© www.soinside.com 2019 - 2024. All rights reserved.