SmtpClient + smtp.yandex.ru - C#
Формулировка задачи:
Здравствуйте. Не отправляется почта. В чем может быть причина? Если на порт 465 подключаться, то по таймауту отваливается, если к 587 то:
Код:
E:\Projects\mail_sendnew\mail_send\bin\Release>mail_send.exe Can't send email: System.Net.Mail.SmtpException: Неправильная последовательность команд. Ответ сервера: 5.5.4 Error: send AUTH command first. в System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response) в System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception) в System.Net.Mail.SmtpClient.Send(MailMessage message) в mail_send.Program.SendMail() в e:\Projects\mail_sendnew\mail_send\Program.cs:строка 89
public static void SendMail()
{
const string smtp_account = "removed@mail.ru";
const string smtp_password = "password";
const string smtp_reciever = "removed@mail.ru";
var from_email = new MailAddress(smtp_account);
var to_emal = new MailAddress(smtp_reciever);
Attachment attach = new Attachment("file.txt");
var message = new MailMessage(from_email, to_emal);
message.Subject = "Hello!";
message.Body = "How are you?";
message.Attachments.Add(attach);
var smtp = new SmtpClient
{
Host = "smtp.yandex.ru",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(from_email.Address, smtp_password)
};
try
{
smtp.Send(message);
}
catch (Exception ex)
{
DebugMSG("Can't send email: " + ex.ToString());
return;
}
}Решение задачи: «SmtpClient + smtp.yandex.ru»
textual
Листинг программы
//начинаем отправку сообщения
MailSender mail_msg = new MailSender();
mail_msg.MailAdressTo = addr_to;
mail_msg.MailAdressFrom = "mymail@list.ru";
mail_msg.NameFrom = name_sender;
mail_msg.SubjectLetter = subject_letter;
mail_msg.BodyTextLetter = text_letter;
mail_msg.SmtpSendMail = "smtp.mail.ru";
mail_msg.PortSendMail = 465;
mail_msg.LoginSendMail = "mymail@list.ru";
mail_msg.PasswSendMail = "password";
mail_msg.BodyIsHtml = true;
mail_msg.EnableSSL = true;
//отправляем сообщение
mail_msg.SendMessageToMail();
string status_message = mail_msg.GetStatusSend;
Console.WriteLine("Статус сообщения: {0}", status_message);