雅虎smtp发送电子邮件时出错

本文关键字:出错 电子邮件 smtp 雅虎 | 更新日期: 2023-09-27 17:59:10

我通过这篇文章配置了我的outlook 2010,以便从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("myid@yahoo.com", "blabla");
            mailMessage.To.Add(new System.Net.Mail.MailAddress("xxx@live.com", "xxx@live.com"));
            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;
        }

雅虎smtp发送电子邮件时出错

来自MSDN

某些SMTP服务器要求在服务器代表其发送电子邮件。当如果服务器请求,SmtpClient对象应该进行身份验证使用当前登录用户的默认凭据。对于客户端应用程序,这是大多数场景中所需的行为。

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