使用smtp.gmail.com时出现System.Security.SecurityException

时间:2012-06-05 17:35:26

标签: c# .net smtp

使用this well read post

中的代码时
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的权限。

这段代码是否必须在某些特殊的托管环境中使用,或者我错过了一些明显的东西?

谢谢!

1 个答案:

答案 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链接。