I try to send mail using C# and yandex, but I get an error:
Error 5.5.4 Error: send AUTH command first
Here is my code. I try with different ports (587, 465..) and SMTP hosts (smtp.yandex.com.tr, smtp.yandex.com, smtp.yandex.ru...) but I get the same error for all attempts.
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 doesn't support connection without SSL (according to https://yandex.com/support/mail/mail-clients.xml). Try to set EnableSsl
to true and use host: smtp.yandex.com
, port: 465. If it will not work - try port 25
You must set sc.Credentials = new System.Net.NetworkCredential()
after calling sc.UseDefaultCredentials = false;
UseDefaultCredentials = false
will reset Credentials
to null
try to switch lines order to:
sc.UseDefaultCredentials = false;
sc.Credentials = new System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings["Email"].ToString(),
System.Configuration.ConfigurationManager.AppSettings["Sifre"].ToString());
also valid settings for smtp.yandex.ru:
smtpUserName=""
enableSsl="true"
smtpPassword=""
smtpAuthentication="Basic"
smtpServer="smtp.yandex.ru"
smtpPort="465"
This error will happen if your password is wrong. That was the case for me at least.
I solve this problem my changing the SMTP host from smtp.yandex.com to smtp.yandex.ru and i was using port 25.
Works for me perfectly.
Here is the code:
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);