【问题标题】:C# yandex mail send error 5.5.4 Error: send AUTH command firstC# yandex mail send error 5.5.4 Error: send AUTH command first
【发布时间】:2017-07-12 11:58:31
【问题描述】:

我尝试使用 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;

【问题讨论】:

    标签: c# email sendmail yandex


    【解决方案1】:

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

    【讨论】:

    • 我有 SslEnabled = true 并尝试了所有端口但仍然收到该错误:(
    【解决方案2】:

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

    UseDefaultCredentials = falseCredentials 重置为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"
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

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

          祝你有美好的一天:)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-01-14
            • 1970-01-01
            • 2013-12-15
            • 2020-03-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多