信箱不可用。服务器响应为:未执行请求的邮件操作:邮箱不可用

时间:2018-11-19 06:05:52

标签: c# smtp yahoo-mail

我无法使用yahoo客户端发送电子邮件。相同的代码和端口可以使用gmail凭据。

在我的本地系统中对此进行测试。

var fromAddress = new MailAddress("myname@yahoo.com", "My Name");
                    var toAddress = new MailAddress("validemail@yahoo.com", "");

                    var smtp = new SmtpClient
                    {
                        Host = "smtp.mail.yahoo.com",
                        Port = 587,
                        EnableSsl = false,
                        DeliveryMethod = SmtpDeliveryMethod.Network,
                        UseDefaultCredentials = false,
                        Credentials = new NetworkCredential(fromAddress.Address, "P@s5word")
                    };

                    using (var message = new MailMessage(fromAddress, toAddress)
                    {
                        Subject = emailSubject,
                        Body = emailBody,
                        IsBodyHtml = true
                    })
                    {
                        //turning the security off for testing
                        ServicePointManager.ServerCertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
                        { return true; };
                        smtp.Send(message);
                    }

也尝试过启用SSL,但是没有运气。

更新:

我意识到在这种情况下需要使用oAuth2。我已经在Yahoo中为我的项目创建了一个应用,并具有客户端ID和客户端密码。

我找不到有关如何使用这些详细信息通过Yahoo发送电子邮件的任何信息。

2 个答案:

答案 0 :(得分:1)

除了使用oAuth2,您还可以在以下位置激活对Yahoo帐户中安全性较低的应用的访问权限:https://login.yahoo.com/account/security

SmtpClient将正常工作。但是您将再次从Yahoo重新注册以停用它。

答案 1 :(得分:0)

需要从该网址https://login.yahoo.com/account/security创建应用密码”

单击“管理应用程序密码”:选择应用程序类型(如果您不知道,请选择其他) 点击生成 复制密码,并在发送电子邮件时将此密码用作登录密码。