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);

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы