С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/88: Рейтинг темы: голосов - 88, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 18.07.2017
Сообщений: 4

SmtpClient + smtp.yandex.ru

07.08.2017, 10:31. Показов 17885. Ответов 2

Студворк — интернет-сервис помощи студентам
Здравствуйте. Не отправляется почта. В чем может быть причина? Если на порт 465 подключаться, то по таймауту отваливается, если к 587 то:

Windows Batch file
1
2
3
4
5
6
7
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
Код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
        public static void SendMail()
        {
            const string smtp_account = "sender_email@yandex.ru";
            const string smtp_password = "password";
            const string smtp_reciever = "reciever_email@yandex.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;
            }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2017, 10:31
Ответы с готовыми решениями:

Отправка e-mail, используя SmtpClient: Серверу SMTP требовалось защищенное соединение
Не получается отправить email письмо. SmtpClient client = new SmtpClient("smtp.gmail.com"); client.Port = 587; client.EnableSsl =...

Отправка письма посредством Yandex SMTP Server
Доброго времени суток. Я реализую отправка письма с прикреплённым файлом. string subject = "Отчёт за...

Как отправить почту не используя smtp (добавить в sender функции smtp)
здравствуйте, быть может я не до конца понимаю принципы взаимодействия клиента, smtp сервера, и почтового ящика. но постараюсь обрисовать...

2
 Аватар для Kloshar
55 / 42 / 27
Регистрация: 19.12.2013
Сообщений: 204
08.08.2017, 12:14
Просмотрел ваш код, вроде все нормально. Как правило в таких случаях проблема бывает в логине или пароле. То есть в невнимательности. Проверьте ещё и ещё раз откуда берутся и подставляются логин и пароль.
Насчёт создания SmtpClient я не совсем уверен. Я умею только так:
C#
1
2
3
4
            SmtpClient smtp = new SmtpClient("smtpHost", "smtpPort");
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new NetworkCredential("login", "pass");
Возможно и ваш метод имеет право на существование
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
27.08.2017, 21:30
Что-то чертовщина какая-то. Запилил свой класс, в классе метод:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public void SendMessageToMail()
        {
            // отправитель - устанавливаем адрес и отображаемое в письме имя
            MailAddress from = new MailAddress(mail_address_from, name_from_mail);
            // кому отправляем
            MailAddress to = new MailAddress(mail_address_to);
            // создаем объект сообщения
            MailMessage mail_message = new MailMessage(from, to);
            mail_message.HeadersEncoding = Encoding.UTF8;
            // тема письма
            mail_message.Subject = subject_letter;
            // текст письма
            mail_message.Body = body_letter;
            //флаг использования html
            mail_message.IsBodyHtml = is_body_html;
            // адрес smtp-сервера и порт, с которого будем отправлять письмо
            SmtpClient smtp_cl = new SmtpClient(smtp_send_mail, port_send_mail);
            smtp_cl.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp_cl.UseDefaultCredentials = false;
            // логин и пароль
            smtp_cl.Credentials = new NetworkCredential(login_mail, passw_mail);
            //устанавливаем при необходимости SSL
            smtp_cl.EnableSsl = enable_ssl;
            //попытка отправки сообщения
            try
            {
                smtp_cl.Send(mail_message);
                //если удачно, то устанавливаем статус
                status_send_message = "message sended";
            }
            catch(Exception e)
            {
                status_send_message = "Ошибка: " + e.Message;
            };
        }
Вызываю следующим образом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//начинаем отправку сообщения
            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);
В итоге вылетает по таймауту.
Может Майл-ру что моросит ?

Добавлено через 56 минут
Прошу прощения. Нужно было другой порт smtp использовать - 25
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2017, 21:30
Помогаю со студенческими работами здесь

SmtpClient проверка соединения
Добрый день. Как проверить SmtpClient ? Правильный хост и порт, логин пароль? Добавлено через 4 часа 43 минуты вверх

Exception с SmtpClient и MailMessage
Пробовал отправить сообщение через smtp, но вылетает ексепшин вот код: public void email_send() { ...

Отослать письмо с помощью SmtpClient
Начал делать прогу, в которую вводишь данные в 1 строку, во вторую, потом нажимаешь на клавишу и отсылается введенное на мыло. все норм,...

Не работает отправка сообщения с помощью SmtpClient
using System.Net.Mail; using System.Net; namespace ConsoleApplication2 { class Program { static void...

Письма созданные из SmtpClient попадают в спам
Добрый день Ситуация такая: Год все работало нормально а где то недели 2 назад письма отправляемые с помощью smtpclient c# стали...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru