2013-02-14 2 views
0

thie article으로 Outlook 2010을 설정하면 yahoo.com에서 이메일을 보내고받을 수 있습니다. 문제없이 잘 작동합니다. yahoo.com에서 이메일을 보내는 중 오류가 발생했습니다.

난 내 응용 프로그램에서 내 이메일을 보낼 수있는 작은 응용 프로그램을 개발하지만 나에게 오류를 준 :

"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

나는 당신이'Credentials'와 함께'UseDefaultCredentials' 속성을 사용해야한다고 생각하지 않습니다. 'UseDefaultCredentials'를 false로 설정합니다. 이 속성을 사용하면 SmtpClient가 현재 사용자의 시스템 자격 증명을 사용하려고 시도합니다. –

+0

@ Adam smtp.UseDefaultCredentials = false로 테스트했는데 작동하지 않는 것은 같은 오류가 있지만 도움을 주셔서 감사합니다. – motevalizadeh

+0

http : /stackoverflow.com/questions/5092235/c-sharp-smtp-email-sending-code-fails-for-yahoo-mail-but-works-fine-for-other-se –

답변

0

From MSDN

일부 SMTP 서버는 요구를 서버가 전자 메일을 보내기 전에 클라이언트를 인증해야합니다. 서버에서 요청할 경우 SmtpClient 개체가 현재 로그온 한 사용자의 기본 자격 증명을 사용하여 을 인증해야 할 때이 속성을 true로 설정합니다. 클라이언트 응용 프로그램의 경우 대부분의 시나리오에서 원하는 동작입니다.

는 정의한 자격 증명이 아닌 현재 로그인 한 사용자 (즉, Windows 사용자)의 자격 증명을 SMTP 서버에 보냅니다. 함께 시도하십시오 UseDefaultCredentials = false

+0

나는 smtp.UseDefaultCredentials = false로 테스트했습니다. ;, 작품에는 같은 오류가 있지만 감사하지 않습니다. – motevalizadeh

관련 문제