5

我尝试使用 C# 和 yandex 发送邮件,但出现错误:

错误 5.5.4 错误:先发送 AUTH 命令

这是我的代码。我尝试使用不同的端口(587、465..)和 SMTP 主机(smtp.yandex.com.tr、smtp.yandex.com、smtp.yandex.ru...),但所有尝试都出现相同的错误。

SmtpClient sc = new SmtpClient("smtp.yandex.com.tr", 587);
//sc.Port = 587;
//sc.Host = "smtp.yandex.com";

sc.EnableSsl = false;
sc.Credentials = new System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings["Email"].ToString(), 
                                                  System.Configuration.ConfigurationManager.AppSettings["Sifre"].ToString());
sc.UseDefaultCredentials = false;
sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
4

5 回答 5

6

我有同样的错误,我通过在 mail.yandex.com 上进行一些设置来纠正它(在电子邮件帐户中)

要解决这个问题; - 输入邮件地址 (mail.yandex.com) - 设置 - 其他电子邮件应用程序 - 设置选定的 POP3 设置即可。

注意:我使用 587 端口和 smtp.yandex.com.tr 主机。

祝你今天过得愉快 :)

于 2019-07-08T09:01:31.387 回答
3

您必须sc.Credentials = new System.Net.NetworkCredential()在调用后设置sc.UseDefaultCredentials = false;

UseDefaultCredentials = false将重置Credentialsnull

尝试将线路顺序切换为:

sc.UseDefaultCredentials = false;
sc.Credentials = new System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings["Email"].ToString(), 
                                                  System.Configuration.ConfigurationManager.AppSettings["Sifre"].ToString());

smtp.yandex.ru 的有效设置:

    smtpUserName=""
    enableSsl="true"
    smtpPassword=""
    smtpAuthentication="Basic"
    smtpServer="smtp.yandex.ru"
    smtpPort="465"
于 2017-08-02T07:23:50.817 回答
2

Yandex Mail 不支持没有 SSL 的连接(根据https://yandex.com/support/mail/mail-clients.xml)。尝试设置EnableSsl为 true 并使用主机:smtp.yandex.com,端口:465。如果它不起作用 - 尝试端口 25

于 2017-02-22T14:12:47.420 回答
1

我解决了这个问题,我将 SMTP 主机从 smtp.yandex.com 更改为 smtp.yandex.ru,并且我使用的是 25 端口。对我来说非常有效。这是代码:

EmailCredentials credentials = new EmailCredentials();
    credentials.Domain = "domain.com";
    credentials.SMTPUser = "webmail@domain.com";
    credentials.SMTPPassword = "pass";
    int SmtpPort = 25;
    string SmtpServer = "smtp.yandex.ru";

    MailMessage EmailMsg = new MailMessage();
    EmailMsg.From = new MailAddress("webmail@domain.com", "Domain");
    EmailMsg.To.Add(new MailAddress("info@domain.mk", "info@domain.mk"));
    EmailMsg.ReplyToList.Add("info@domain.com");

    EmailMsg.Subject = "Welcome";

    EmailMsg.Body = "HTML body code";

    EmailMsg.IsBodyHtml = true;
    EmailMsg.Priority = MailPriority.Normal;

    System.Net.Mail.SmtpClient SMTP = new System.Net.Mail.SmtpClient();
    SMTP.Host = SmtpServer;
    SMTP.Port = SmtpPort;
    SMTP.EnableSsl = true;
    SMTP.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
    SMTP.UseDefaultCredentials = false;
    SMTP.Credentials = new System.Net.NetworkCredential(credentials.SMTPUser, credentials.SMTPPassword);

    SMTP.Send(EmailMsg);
于 2018-03-01T17:44:55.417 回答
0

如果您的密码错误,则会发生此错误。至少对我来说是这样。

于 2017-09-21T21:17:12.600 回答