我无法使用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发送电子邮件的任何信息。
答案 0 :(得分:1)
除了使用oAuth2,您还可以在以下位置激活对Yahoo帐户中安全性较低的应用的访问权限:https://login.yahoo.com/account/security
SmtpClient
将正常工作。但是您将再次从Yahoo重新注册以停用它。
答案 1 :(得分:0)
需要从该网址https://login.yahoo.com/account/security创建应用密码”
单击“管理应用程序密码”:选择应用程序类型(如果您不知道,请选择其他) 点击生成 复制密码,并在发送电子邮件时将此密码用作登录密码。