var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential("my email", "my password")
};
我经常收到System.Security.SecurityException:请求类型为'System.Net.Mail.SmtpPermission的权限。
这段代码是否必须在某些特殊的托管环境中使用,或者我错过了一些明显的东西?
谢谢!
答案 0 :(得分:0)
发送电子邮件取决于SMTP服务器的配置方式。
According to gmail confiruged You need to remove this line of code
UseDefaultCredentials = false;
只需评论此行,系统就会发送您的消息。
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
// do not use this command
// UseDefaultCredentials = false,
Credentials = new NetworkCredential("username", fromPassword)
};
Microsoft建议尽可能不使用defaultcredentials。有关说明,请参阅this链接。