C#yandex邮件发送错误5.5.4错误:首先发送AUTH命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#yandex邮件发送错误5.5.4错误:首先发送AUTH命令相关的知识,希望对你有一定的参考价值。
我尝试使用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;
Yandex Mail不支持没有SSL的连接(根据https://yandex.com/support/mail/mail-clients.xml)。尝试将EnableSsl
设置为true并使用host:smtp.yandex.com
,port:465。如果它不起作用 - 尝试端口25
你必须在调用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"
如果您的密码错误,将发生此错误。至少对我来说就是这种情况。
我解决了这个问题,我将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);
以上是关于C#yandex邮件发送错误5.5.4错误:首先发送AUTH命令的主要内容,如果未能解决你的问题,请参考以下文章
使用 YANDEX 的 SQL Server 2008 数据库邮件