C# 试图以其访问权限所禁止的方式访问套接字72.52.4.90:587

C# 试图以其访问权限所禁止的方式访问套接字72.52.4.90:587,c#,gmail,C#,Gmail,我正在尝试使用gmail服务发送电子邮件,但收到以下错误: 错误: var mail = new MailMessage(); var client = new SmtpClient(); client.Port = 587; client.Host = "smtp.gmail.com"; client.EnableSsl = true; client.Timeout = 10000; client.DeliveryMethod = SmtpDeliveryMethod.Network; cli

我正在尝试使用gmail服务发送电子邮件,但收到以下错误:

错误:

var mail = new MailMessage();
var client = new SmtpClient();
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("myemail@gmail.com", "password");

mail.From = new MailAddress("myemail@gmail.com");
mail.To.Add(new MailAddress("myemail@gmail.com"));
mail.BodyEncoding = UTF8Encoding.UTF8;
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 
mail.Subject = "this is a test email.";
mail.Body = "this is my test email body";
client.Send(mail);
试图以其访问权限所禁止的方式访问套接字72.52.4.90:587

代码:

var mail = new MailMessage();
var client = new SmtpClient();
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("myemail@gmail.com", "password");

mail.From = new MailAddress("myemail@gmail.com");
mail.To.Add(new MailAddress("myemail@gmail.com"));
mail.BodyEncoding = UTF8Encoding.UTF8;
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 
mail.Subject = "this is a test email.";
mail.Body = "this is my test email body";
client.Send(mail);
注意:此代码基于StackOverflow中已有的其他问题和答案。然而,经过广泛的搜索,似乎到目前为止还没有其他人经历过这个问题。根据其他问答,该代码应该有效


更新:在被告知这是一个副本后,我将代码修改为以下内容,但是,我仍然收到相同的错误

    private static void Main(string[] args)
    {
        var From = new MailAddress("myemail@gmail.com", "Me");
        var To = new MailAddress("myemail@gmail.com", "Me Too");
        var client = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587, //25
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(From.Address, "password"),
            Timeout = 20000
        };

        using (var mail = new MailMessage(From, To)
        {
            Subject = @"this is a test email.",
            Body = @"this is my test email body"
        })
        {
            client.Send(mail);
        };
    }

是否有任何进程使用端口
587
?可能是本地XAMP服务器还是虚拟机?您可以使用
netstat-a
(在windows上)检查此问题。我运行了netstat-a,端口587没有连接任何内容。您可以在禁用防火墙的情况下尝试吗?