1

このよく読まれた投稿のコードを使用する場合

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: Request for the permission of type 'System.Net.Mail.SmtpPermission.

このコードは特別なホスティング環境で使用する必要がありますか、それとも明らかな何かが欠けていますか?

ありがとう!

4

1 に答える 1

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を使用しないことをお勧めします。説明については、このリンクを参照してください。

于 2012-06-05T17:40:56.987 に答える