我正在尝试创建一个插件来通过SMTP发送电子邮件。当代码到达SmtpClient client = new SmtpClient(sever);
行时,我得到一个异常。例外情况是:
请求类型为"System.Net.Mail.SmtpPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"的权限请求失败。
我已经测试了SMTP发送电子邮件,它工作正常。测试代码为:
private void button1_Click(object sender, EventArgs e)
{
string server = "smtp.mail.ex.com";
string to = "ex@ex.com";
string from = "donotreply@ex.com";
MailMessage message = new MailMessage(from, to);
message.Subject = "Using the new SMTP client.";
message.Body = @"Using this new feature, you can send an e-mail message from an application very easily.";
SmtpClient client = new SmtpClient(server);
client.UseDefaultCredentials = false ;
try
{
client.Send(message);
MessageBox.Show("mail Send");
}
catch (Exception ex)
{
Console.WriteLine("Exception caught in CreateTestMessage2(): {0}",
ex.ToString());
}
}
这个运行良好,我可以收到电子邮件。为什么它在CRM插件中运行时有安全请求?
CRM沙盒行为。
在此隔离环境中,也称为沙盒、插件或 自定义活动可以利用Microsoft的全部功能。 用于访问组织 Web 服务的动态 CRM SDK。访问 文件系统、系统事件日志、某些网络协议、 注册表,以及沙盒中阻止更多内容。
如果您在本地运行,您可以尝试在沙盒之外注册您的插件(插件注册工具中的一个选项)。
如果做不到这一点,您只需在CRM中创建电子邮件记录,并使用开箱即用的行为发送电子邮件。
插件隔离、信任和统计信息
Hu Lydia, 在这种情况下,您可以做的可能是移动代码以将电子邮件发送到 Web 服务,然后从您的插件调用该 Web 服务,即使插件在沙盒中注册,该插件也应该可以工作。希望这是有道理的。