在 c# windows 应用程序中从雅虎发送邮件时出现身份验证错误

authentication error in sending mail from yahoo in c# windows application

我正在尝试使用 yahoo 的 smtp 从我的软件发送电子邮件,但它显示以下错误 "The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.1 Authentication required".

我知道 google 中安全性较低的应用程序设置,但我不知道 yahoo 中的设置。相同的代码使用 gmail 帐户凭据运行良好。这是参考代码。

string EmailFrom = "test@yahoo.com";
        string EmailTo = "test@gmail.com";
        string PassWord = "test123";
        string EmailHost = "smtp.mail.yahoo.com";
        string status = "";
        string Body = "";

        MailMessage message = new MailMessage();
        SmtpClient smtp = new SmtpClient();

        message.From = new MailAddress(EmailFrom);
        message.To.Add(new MailAddress(EmailTo));
        message.Subject = "Auto Backup at test" ;
        message.Body = "Backup has been taken at test on" + DateTime.Now;
        Body = "Backup has been taken at test on" + DateTime.Now;
        smtp.Port = 587;
        smtp.Host = EmailHost;
        smtp.EnableSsl = true;
        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new NetworkCredential(EmailFrom, PassWord);
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        //ServiceLogLibrary.WriteErrorlog("Step:5");
        //Library.WriteErrorlog("Before sending mail");
        smtp.Send(message);

你需要去

  1. Go to your "Account security" settings.
  2. Select 允许使用安全性较低的应用登录。
  3. 要拒绝或关闭应用程序访问权限,请取消选择不需要的应用程序。

来源:Temporarily allow or deny access to apps using older security sign in

只是在此处提供更多信息,因为自发布接受的答案以来情况发生了一些变化。

  1. 转到帐户安全设置 (https://login.yahoo.com/account/security)
  2. 滚动到底部并搜索“管理应用密码”标题,如下所示,然后单击它以添加新应用。

  1. Select 一个应用类型并生成密码。对于 API 个应用,请使用“其他应用”。

  1. 通过您的 SmtpClient 发送电子邮件时,请使用此密码而不是您的标准邮箱密码。