2013-02-14 240 views
0

我配置我的Outlook 2010的thie article发送和接收来自yahoo.com的电子邮件,它工作正常,没有任何问题。雅虎smtp发送电子邮件时发生错误

我开发一个小应用程序通过我的应用程序发送我的电子邮件,但它给我的错误:

"unable to read data from the transport connection:an exist connection was 
forcibly closed by the remote host." 

我的代码:

try 
     { 

      SmtpClient smtp = new SmtpClient("smtp.mail.yahoo.com", 465); 
      smtp.UseDefaultCredentials = true; 
      smtp.EnableSsl = true; 
      smtp.Credentials = new System.Net.NetworkCredential("myid", "mypass"); 

      smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 

      MailMessage mailMessage = new MailMessage(); 
      mailMessage.From = new System.Net.Mail.MailAddress("[email protected]", "blabla"); 
      mailMessage.To.Add(new System.Net.Mail.MailAddress("[email protected]", "[email protected]")); 
      mailMessage.Subject = "test"; 
      mailMessage.Body = "test"; 
      mailMessage.IsBodyHtml = false; 

      mailMessage.SubjectEncoding = System.Text.Encoding.UTF8; 
      mailMessage.BodyEncoding = System.Text.Encoding.UTF8; 

      mailMessage.Priority = MailPriority.High; 


      smtp.Send(mailMessage); 

      Console.WriteLine("hooooooooooraaaaaaaaaaaaaaa"); 
      Console.ReadKey(); 
     } 
     catch (Exception err) 
     { 

      Console.WriteLine(err.InnerException.Message); 
      Console.ReadKey(); 
      return; 
     } 
+0

我不认为你应该使用'UseDefaultCredentials'属性以及'Credentials'。我会将UseDefaultCredentials设置为false。该属性将导致SmtpClient尝试使用当前用户的系统凭据 – 2013-02-14 21:56:18

+0

@Adam我通过smtp.UseDefaultCredentials = false测试了它;不工作具有相同的错误,但感谢您的帮助 – motevalizadeh 2013-02-14 21:58:53

+0

请看一下:http:/ /stackoverflow.com/questions/5092235/c-sharp-smtp-email-sending-code-fails-for-yahoo-mail-but-works-fine-for-other-se – 2013-02-14 22:02:28

回答

0

From MSDN

一些SMTP服务器要求客户端在 服务器代表它发送电子邮件之前进行身份验证。如果服务器请求,此 SmtpClient对象应该使用当前登录的用户的默认凭据来认证 ,请将此属性设置为true。对于 客户端应用程序,这是大多数情况下所需的行为。

UseDefaultCredentials = true向SMTP服务器发送当前登录用户(即Windows用户)的凭证而不是您定义的凭证。 尝试UseDefaultCredentials = false

+0

我测试了它的smtp.UseDefaultCredentials = false ;,不工作有相同的错误,但谢谢 – motevalizadeh 2013-02-14 22:00:38