System.Security.Security使用 smtp.gmail.com 时的异常

本文关键字:Security 异常 com gmail 使用 smtp System | 更新日期: 2023-09-27 18:36:27

当使用这篇阅读良好的帖子中的代码时

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"的权限。

此代码是否必须在某些特殊的托管环境中使用,或者我是否缺少一些明显的东西?

谢谢!

System.Security.Security使用 smtp.gmail.com 时的异常

发送电子邮件取决于 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建议尽可能不要使用默认凭据。有关说明,请参阅此链接。