Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 寻找.NET SmtpClient疑难解答的想法_C#_.net_Email_Smtp - Fatal编程技术网

C# 寻找.NET SmtpClient疑难解答的想法

C# 寻找.NET SmtpClient疑难解答的想法,c#,.net,email,smtp,C#,.net,Email,Smtp,我绞尽脑汁想了三个多小时,想尽一切办法让.NET4.5 SmtpClient发送一封测试电子邮件 我尝试过的事情: 禁用windows防火墙 禁用路由器防火墙并启用DMZ,最大未知 禁用防病毒软件 端口(25,26465587)和ssl(启用/未启用)设置的所有可能排列 查看应用程序代码在连接查看器中打开网络连接( 连接永远无法通过SYN_(已发送) 报告的异常有时是“操作已超时”,有时是“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机未能响应[ip.ad.

我绞尽脑汁想了三个多小时,想尽一切办法让.NET4.5 SmtpClient发送一封测试电子邮件

我尝试过的事情:

禁用windows防火墙

禁用路由器防火墙并启用DMZ,最大未知

禁用防病毒软件

端口(25,26465587)和ssl(启用/未启用)设置的所有可能排列

查看应用程序代码在连接查看器中打开网络连接( 连接永远无法通过SYN_(已发送)

报告的异常有时是“操作已超时”,有时是“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机未能响应[ip.ad.re.ss]:587”,具体取决于所使用的设置

下面是我正在尝试使用的代码,它正在Win7Pro IIS7 MVC 4应用程序中运行:

    string fromaddress = "address@gmail.com";
    string toaddressstring = "recipient@gmail.com";
    string subjecttext = "test";
    string bodytext = "simple test email text";
    System.Net.Mail.MailMessage email = new System.Net.Mail.MailMessage();
    email.IsBodyHtml = true;
    email.Body = "simple test email body text";
    email.From = new System.Net.Mail.MailAddress(fromaddress);
    email.To.Add(toaddressstring);
    email.Subject = subjecttext;
    System.Net.Mail.SmtpClient smtpcli = new System.Net.Mail.SmtpClient();
    smtpcli.Host = "smtp.gmail.com";
    smtpcli.Port = 587;
    smtpcli.Timeout = 10000;
    smtpcli.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
    smtpcli.EnableSsl = true;
    smtpcli.UseDefaultCredentials = false;
    smtpcli.Credentials = new NetworkCredential(fromaddress, "password");
    smtpcli.Send(email);

我已经完全没有主意了,还有什么不对的?任何建议都会非常棒。

使用此代码并尝试签入您现在使用的不同ip

    var message = new MailMessage();
    message.From = new MailAddress("from@gmail.com");
    MailAddress to = new MailAddress("to@gmail.com");
    message.Subject = "Subject";       
    string bodyString = "";
    bodyString += "Hello";
    message.Body = bodyString;
    message.To.Add(to);
    message.IsBodyHtml = true;
    SmtpClient smtp = new SmtpClient("smtp.gmail.com");
    smtp.Credentials = new System.Net.NetworkCredential("user@gmail.com", "password");
    smtp.EnableSsl = false;
    smtp.Send(message);

似乎无法建立TCP连接。我测试了你的代码,在我的电脑上运行良好


您可以尝试从google支持页面中的故障排除清单

检查您是否无法建立TCP连接。故障排除并允许使用@stackuser83链接访问您的gmail帐户。我已经检查了您的代码,它工作正常。只需通过更改ip来尝试代码,或者您可以使用我提供给您的代码。@Mihai这肯定是路由器防火墙,telnet方法加快了故障排除速度20x,TY。如果你把它放在一个答案中,我可以将它标记为正确。这与他迄今为止尝试的有什么不同,与他的代码有什么不同?@MihaiHantea他正在使用端口设置,而我没有使用端口设置。。而在主机自动配置端口(smtp.gmail.com)@MihaiHantea你看不见吗stackuser83:端口(25,26465587)和ssl(启用/未启用)设置的所有可能排列。和smtpcli.Host=“smtp.gmail.com”;smtpcli.Port=587;smtpcli.Timeout=10000;--差异-->他同时使用端口和主机,而我只使用了主机,问题一定是在IP或端口。。。如果你想知道的更好,那么使用我的代码,你会得到你所有的答案。。