@Artem_Nim_programmer
Programmer

Отправка письма на email.?

При нажатии на кнопку Button1 должна производиться отправка на почту сообщения. Но при выполнении вылазит ошибка. Хелп!7ee6d033d5f44834999e3a57c8052c4d.jpg
  • Вопрос задан
  • 546 просмотров
Решения вопроса 1
tomnolane
@tomnolane
профессиональный разработчик
вы уверены, что:
1) указали верный порт smtp принимающей(к какой подключаетесь) стороны? (точно 587 ??? не всегда используется 587 для smtp)
2) указали верный адрес почты?
3) верный логин и пароль?

вот рабочий код:
class Program
    {
        static void Main(string[] args)
        {
             
            // отправитель - устанавливаем адрес и отображаемое в письме имя
            MailAddress from = new MailAddress("somemail@gmail.com", "Tom");
            // кому отправляем
            MailAddress to = new MailAddress("somemail@yandex.ru");
            // создаем объект сообщения
            MailMessage m = new MailMessage(from, to);
            // тема письма
            m.Subject = "Тест";
            // текст письма
            m.Body = "<h2>Письмо-тест работы smtp-клиента</h2>";
            // письмо представляет код html
            m.IsBodyHtml = true;
            // адрес smtp-сервера и порт, с которого будем отправлять письмо
            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
            // логин и пароль
            smtp.Credentials = new NetworkCredential("somemail@gmail.com", "mypassword");
            smtp.EnableSsl = true;
            smtp.Send(m);
            Console.Read();
        }
    }


вот асинхронный код:
class Program
    {
        static void Main(string[] args)
        {
 
            SendEmailAsync().GetAwaiter();
            Console.Read();
        }
 
        private static async Task SendEmailAsync()
        {
            MailAddress from = new MailAddress("somemail@gmail.com", "Tom");
            MailAddress to = new MailAddress("somemail@yandex.ru");
            MailMessage m = new MailMessage(from, to);
            m.Subject = "Тест";
            m.Body = "Письмо-тест 2 работы smtp-клиента";
            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
            smtp.Credentials = new NetworkCredential("somemail@gmail.com", "mypassword");
            smtp.EnableSsl = true;
            await smtp.SendMailAsync(m);
            Console.WriteLine("Письмо отправлено");
        }
    }

если через это не отправится - значит проблемы с указанными данными: порт, емеил, логи и пароль...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
А почему бы не обернуть свой код в try-catch и не прочитать exception.message - там вероятнее всего вполне внятно написано о причине проблемы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы