C# 试图以其访问权限所禁止的方式访问套接字72.52.4.90:587
我正在尝试使用gmail服务发送电子邮件,但收到以下错误: 错误: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
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没有连接任何内容。您可以在禁用防火墙的情况下尝试吗?