C#yandex邮件发送错误5.5.4错误:首先发送AUTH命令

时间:2017-02-22 12:24:39

标签: c# email sendmail yandex

我尝试使用C#和yandex发送邮件,但是收到错误:

  

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

这是我的代码。我尝试使用不同的端口(587,465 ..)和SMTP主机(smtp.yandex.com.tr,smtp.yandex.com,smtp.yandex.ru ...),但我对所有尝试都收到同样的错误。< / p>

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;

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您必须在致电sc.Credentials = new System.Net.NetworkCredential()

后设置sc.UseDefaultCredentials = false;

UseDefaultCredentials = false会将Credentials重置为null

尝试将行顺序切换为:

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"

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我解决了这个问题,我将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);

答案 4 :(得分:0)

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

要修复它; -输入邮件地址(mail.yandex.com) -设定 -其他电子邮件应用程序 -设置所有选定的POP3设置。

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

祝您有美好的一天:)